숑숑이의 개발일기
article thumbnail
Published 2024. 2. 23. 03:27
[DB] ERD란? ERD의 정의와 특징 Backend

1. ERD란?

객체-관계 모델(Entity-Relationship Modeling)은 세상의 사물을 개체(Entity)와 개체 간의 관계(Relationship)로 표현하는 데이터 모델링 방식으로 개념적 데이터 모델링 단계에서 사용된다. ERD는 개체 관계도라고도 불린다. 개체, 관계 및 속성에 대한 다양한 표기법을 사용하여 데이터베이스 구조를 시각화하기 때문에 데이터베이스의 구성 요소간 관계를 쉽게 파악하고, 데이터베이스를 이해하고 분석하는데 도움을 받을 수 있다.

 

1.1. 장점

  • 구조를 시각적으로 표현하기 때문에 복잡한 구조도 쉽게 이해할 수 있다.
  • 데이터 중심 설계를 가능하게 한다. (=일관성, 정확성 및 효율성을 유지할 수 있다.)
  • 데이터베이스의 설계자, 개발자, 관리자 간의 의사 소통을 원활하게 한다.

 

개념적 데이터 모델링이란?
내가 하고자 하는 일의 데이터 간의 관계를 구상하는 단계로, 각 개체들과 그들간의 관계를 발견하고 표현하기 위해 ERD 다이어그램을 작성한다.

 

 

2. ERD의 구성 요소

2.1. 엔티티(Entity)

엔티티는 정의 가능한 사물 또는 개념을 의미한다. 데이터베이스의 테이블이 엔티티로 표현된다고 생각하면 된다. 대부분 사각형으로 표현되며 아래의 특징을 가진다.

  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
  • 유일한 식별자(Unique Identifier)에 의해 식별이 가능해야 한다.
  • 영속적으로 존재하는 인스턴스의 집합이어야 한다.(한 개가 아닌 두 개 이상)
  • 업무 프로세스에 의해 이용되어야 한다.
  • 속성이 있어야 한다.
  • 다른 엔티티와 최소 한 개 이상의 관계가 있어야 한다.

 

2.2. 속성(Attribute)

속성의 정의는 아래와 같다.

  • 업무에서 필요로 한다.
  • 의미상 더 이상 분리되지 않는다.
  • 엔티티를 설명하고 인스턴스의 구성요소가 된다.

예시로 생년월일은 하나로서 의미가있다. 이것을 생년, 생월, 생일로 구분한다면 사실 하나의 속성을 관리목적에 따라 구분한 것이다. 이러한 이유로 인해 S/W 비용을 산정하는 기능점수를 산정할 때에는 이렇게 분리된 속성은 하나의 속성으로 계산한다. 그러나 서로 관련이 없는 이름+주소를 속성으로 사용한다면? 하나의 속성이 두개의 의미를 갖기 때문에 기본속성으로 성립하지 않게 된다.

 

데이터베이스 테이블의 각 필드(컬럼)이 엔티티의 속성이라고 보면 된다. 속성은 엔티티 내에 소문자로 작게 표현하며 엔티티 이름과 중복되면 안된다. #는 UID, *는 필수(Mandatory), o는 선택(Optional)을 의미한다.

 

2.3. 도메인(Domain)

도메인은 각 속성을 가질 수 있는 값의 범위를 말한다. 다르게 말해 엔티티 내에서 속성에 대한 데이터 타입과 크기, 제약사항을 지정하는 것이라고 볼 수 있다. 데이터 타입을 명시할 때에는 데이터베이스가 지원하는 타입에 맞게 작성하도록 한다.

 

 

2.4. 관계(Relationship)

사전적인 정의로는 상호 연관성이 있는 상태를 말한다. 데이터 모델에서는 엔티티의 인스턴스 사이의 논리적인 연관성으로 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태라고 말할 수 있다. 관계는 엔티티와 엔티티간 연관성을 표현하므로 엔티티의 정의에 따라 영향을 받기도 하고, 속성 정의 및 관계 정의에 따라서도 다양하게 변할 수 있다.

 

관계는 아래 개념의 이해가 필요하다.

  • 관계명(Membership) : 관계의 이름
  • 관계차수(Cardinality) : 1:1, 1:M, M:N
  • 관계선택사양(Optionality) : 필수관계, 선택 관계

2.4.1. 관계차수

관계차수는 두 개의 엔티티간 관계에서 참여자의 수를 표현한다. 

 

이때 주의해야할 것은 M:N관계이다. 두 엔티티가 다대다 관계에 있는 경우, 두 개의 엔티티만으로는 서로를 표현하는데 부족하다. 데이터 모델링에서는 다대다 관계를 완성되지 않은 모델로 간주하며, 두 엔티티의 관계를 1:N, N:1로 조정하는 작업이 필요하다.

 

2.4.2. 관계선택사양

관계선 각 측의 끝자락에 기호를 표시한다 |는 반드시 있어야 하는 개체이다. O가 있다면 없어도 되는 개체를 말한다. 관계선택사양은 이것을 어떻게 설정했는지에 따라 참조무결성 제약조건의 규칙이 바뀌게 되므로 주의 깊게 모델링을 해야 한다.

https://gr-st-dev.tistory.com/634
https://www.lucidchart.com/pages/er-diagrams
https://dataonair.or.kr/db-tech-reference/d-guide/sql/?pageid=5&mod=document&uid=326
https://inpa.tistory.com/entry/DB-%F0%9F%93%9A-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8%EB%A7%81-1N-%EA%B4%80%EA%B3%84-%F0%9F%93%88-ERD-%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8
profile

숑숑이의 개발일기

@숑숑-

풀스택 개발자 준비중입니다