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

개체는 데이터베이스에 저장하고자 하는 실제 대상을 나타낸다.
예를 들어, ‘학생’, ‘강좌’, ‘교수’ 등이 개체가 될 수 있다. 개체는 보통 사각형으로 표현된다.
예시:
학생 개체의 경우:
- 실체: 개별 학생들
- 표현: ‘학생’ 이라는 개체로 모델링
- 속성: 학번, 이름, 학과, 연락처 등
- 속성(Attribute)
속성은 개체의 특성이나 성질을 나타낸다.
타원형으로 표현되며, 개체와 선으로 연결된다.
속성의 종류:
- 단일값 속성: 하나의 값만 가지는 속성 (예: 학번)
- 다중값 속성: 여러 값을 가질 수 있는 속성 (예: 전화번호)
- 유도 속성: 다른 속성으로부터 계산되는 속성 (예: 나이)
- 키 속성: 개체를 유일하게 식별하는 속성 (예: 학번)
- 관계(Relationship)
관계는 개체들 간의 연관성을 나타낸다.
마름모 형태로 표현되며, 관련된 개체들과 선으로 연결된다.
관계의 종류:
- 일대일(1:1) 관계: 각 개체가 상대 개체와 최대 하나씩 연결
- 일대다(1:N) 관계: 한 개체가 여러 개의 다른 개체와 연결
- 다대다(N:M) 관계: 양쪽 개체 모두 여러 개의 상대 개체와 연결
관계 표현 예시:
ER 모델링의 단계
요구사항 분석
시스템에서 필요한 데이터와 기능을 파악한다.
예: “대학 수강신청 시스템을 만들어야 한다. 학생들은 여러 강좌를 수강할 수 있으며…”개체 식별
주요 데이터 개체들을 파악한다.
예: 학생, 강좌, 교수, 학과 등속성 정의
각 개체의 특성을 정의한다.
예: 학생(학번, 이름, 학과, 연락처)관계 설정
개체들 간의 관계를 정의한다.
예: 학생 - 수강 - 강좌 (다대다 관계)제약조건 정의
데이터의 무결성을 위한 제약조건을 설정한다.
예: “학생은 최대 6과목까지만 수강할 수 있다”
실제 적용 예시
대학 수강신청 시스템의 ER 모델:
개체:
- 학생(학번, 이름, 학과, 연락처)
- 강좌(과목코드, 과목명, 학점, 수강정원)
- 교수(교수번호, 이름, 학과, 연구실)
관계:
- 수강(학생-강좌): 다대다 관계
- 담당(교수-강좌): 일대다 관계
- 소속(학생-학과): 다대일 관계
제약조건:
- 학생은 한 학기에 최대 18학점까지 수강 가능
- 각 강좌는 반드시 한 명의 담당 교수가 있어야 함
- 강좌별 수강 인원은 수강정원을 초과할 수 없음
ER 모델링의 장점
직관적 이해
시각적 표현을 통해 시스템의 구조를 쉽게 이해할 수 있다.의사소통 도구
개발자, 사용자, 관리자 간의 효과적인 의사소통을 가능하게 한다.설계 검증
데이터베이스 구현 전에 설계상의 문제를 발견하고 수정할 수 있다.