ER(Entity-Relationship) 모델링

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

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

주요 구성 요소

  1. 개체(Entity)
    개체는 데이터베이스에 저장하고자 하는 실제 대상을 나타낸다.
    예를 들어, ‘학생’, ‘강좌’, ‘교수’ 등이 개체가 될 수 있다. 개체는 보통 사각형으로 표현된다.
    예시:
    학생 개체의 경우:
  • 실체: 개별 학생들
  • 표현: ‘학생’ 이라는 개체로 모델링
  • 속성: 학번, 이름, 학과, 연락처 등
  1. 속성(Attribute)
    속성은 개체의 특성이나 성질을 나타낸다.
    타원형으로 표현되며, 개체와 선으로 연결된다.
    속성의 종류:
  • 단일값 속성: 하나의 값만 가지는 속성 (예: 학번)
  • 다중값 속성: 여러 값을 가질 수 있는 속성 (예: 전화번호)
  • 유도 속성: 다른 속성으로부터 계산되는 속성 (예: 나이)
  • 키 속성: 개체를 유일하게 식별하는 속성 (예: 학번)
  1. 관계(Relationship)
    관계는 개체들 간의 연관성을 나타낸다.
    마름모 형태로 표현되며, 관련된 개체들과 선으로 연결된다.
    관계의 종류:
  • 일대일(1:1) 관계: 각 개체가 상대 개체와 최대 하나씩 연결
  • 일대다(1:N) 관계: 한 개체가 여러 개의 다른 개체와 연결
  • 다대다(N:M) 관계: 양쪽 개체 모두 여러 개의 상대 개체와 연결
    관계 표현 예시:
1
2
3
4
5
[학생] ----< 수강 >---- [강좌]
 |                       |
(학번)                 (과목코드)
(이름)                 (과목명)
(학과)                 (학점)

ER 모델링의 단계

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

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

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

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

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

실제 적용 예시

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

개체:

  • 학생(학번, 이름, 학과, 연락처)
  • 강좌(과목코드, 과목명, 학점, 수강정원)
  • 교수(교수번호, 이름, 학과, 연구실)

관계:

  • 수강(학생-강좌): 다대다 관계
  • 담당(교수-강좌): 일대다 관계
  • 소속(학생-학과): 다대일 관계

제약조건:

  • 학생은 한 학기에 최대 18학점까지 수강 가능
  • 각 강좌는 반드시 한 명의 담당 교수가 있어야 함
  • 강좌별 수강 인원은 수강정원을 초과할 수 없음

ER 모델링의 장점

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

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

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


참고 및 출처