ER(Entity-Relationship) 모델링

ER 모델링은 현실 세계의 데이터를 개체(Entity), 속성(Attribute), 관계(Relationship)로 표현하여 데이터베이스의 구조를 설계하는 방법.
이를 통해 복잡한 데이터 구조를 시각적으로 표현하고 이해하기 쉽게 만든다.

An entity–attribute-relationship diagram for an MMORPG using Chen’s notation
https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model#/media/File:ER_Diagram_MMORPG.png

주요 구성 요소

  1. 개체(Entity)
    개체는 데이터베이스에 저장하고자 하는 실제 대상을 나타낸다.
    예를 들어, ‘학생’, ‘강좌’, ‘교수’ 등이 개체가 될 수 있다. 개체는 보통 사각형으로 표현된다.
    예시:
    학생 개체의 경우:
  1. 속성(Attribute)
    속성은 개체의 특성이나 성질을 나타낸다.
    타원형으로 표현되며, 개체와 선으로 연결된다.
    속성의 종류:
  1. 관계(Relationship)
    관계는 개체들 간의 연관성을 나타낸다.
    마름모 형태로 표현되며, 관련된 개체들과 선으로 연결된다.
    관계의 종류:
1
2
3
4
5
[학생] ----< 수강 >---- [강좌]
 |                       |
(학번)                 (과목코드)
(이름)                 (과목명)
(학과)                 (학점)

ER 모델링의 단계

  1. 요구사항 분석
    시스템에서 필요한 데이터와 기능을 파악한다.
    예: “대학 수강신청 시스템을 만들어야 한다. 학생들은 여러 강좌를 수강할 수 있으며…”

  2. 개체 식별
    주요 데이터 개체들을 파악한다.
    예: 학생, 강좌, 교수, 학과 등

  3. 속성 정의
    각 개체의 특성을 정의한다.
    예: 학생(학번, 이름, 학과, 연락처)

  4. 관계 설정
    개체들 간의 관계를 정의한다.
    예: 학생 - 수강 - 강좌 (다대다 관계)

  5. 제약조건 정의
    데이터의 무결성을 위한 제약조건을 설정한다.
    예: “학생은 최대 6과목까지만 수강할 수 있다”

실제 적용 예시

대학 수강신청 시스템의 ER 모델:

개체:

관계:

제약조건:

ER 모델링의 장점

  1. 직관적 이해
    시각적 표현을 통해 시스템의 구조를 쉽게 이해할 수 있다.

  2. 의사소통 도구
    개발자, 사용자, 관리자 간의 효과적인 의사소통을 가능하게 한다.

  3. 설계 검증
    데이터베이스 구현 전에 설계상의 문제를 발견하고 수정할 수 있다.


참고 및 출처