IT Study/데이터베이스 및 데이터 처리

🗂️ ERD(Entity-Relationship Diagram) 작성법과 개체 간 관계 이해

cs_bot 2025. 4. 8. 12:49

1. ERD 개요

  • ERD는 데이터베이스 설계 초기 단계에서 사용되는 다이어그램 표현 도구
  • 현실 세계의 업무 프로세스를 구성하는 주요 개체(Entity), 이들 간의 관계(Relationship), 그리고 속성(Attribute)들을 시각적으로 표현함
  • 논리적 데이터 모델링의 핵심 산출물로, 이후 관계형 데이터베이스로의 전환 기반이 됨
  • 정보시스템의 데이터 구조를 명확히 정의함으로써 설계 오류 방지와 사용자·개발자 간 의사소통 도구로 사용됨

2. ERD 구성 요소 정의

(1) 개체(Entity)

  • 현실 세계에서 식별 가능한 사물이나 개념
  • 유형 개체(사람, 상품 등), 무형 개체(계약, 주문 등)로 분류됨
  • 강한 개체: 독립적으로 존재 가능, 기본 키 보유
  • 약한 개체: 다른 개체의 존재에 의존, 외래 키와 기본 키의 결합으로 식별됨
  • 사각형으로 표현하고, 개체명은 단수형 명사로 기술함

(2) 속성(Attribute)

  • 개체가 가지는 특성 또는 성질
  • 기본 속성, 복합 속성, 유도 속성, 다중값 속성으로 구분됨
  • 기본 키(Primary Key)는 개체 식별을 위한 고유한 속성
  • 타원형으로 표현되며, 기본 키는 밑줄, 유도 속성은 점선 타원으로 표시

(3) 관계(Relationship)

  • 개체 간 의미 있는 연관성을 나타냄
  • 1:1, 1:N, M:N의 카디널리티(Cardinality)를 가짐
  • 관계명은 동사형으로 기술, 마름모형(다이아몬드)으로 표현
  • 관계도 강한 관계약한 관계로 구분 가능함
  • 관계 속성도 존재 가능하며, 이 경우 관계선에 속성을 연결함

3. ERD 작성 절차

(1) 요구사항 분석

  • 업무 담당자와의 인터뷰, 문서 분석 등을 통해 업무 규칙(Business Rule) 도출
  • 데이터 흐름 및 저장소 파악을 통해 추출 대상 개체 정의

(2) 개체 식별

  • 주요 개체와 그 속성을 식별
  • 개체 간 종속성과 독립성 판단하여 강한/약한 개체 분류

(3) 관계 정의

  • 개체 간 관계를 식별하고, 관계명을 부여
  • 각 관계의 카디널리티 결정
  • 업무 규칙에 따라 관계 속성 정의

(4) 정규화 적용

  • 속성 간의 함수 종속성을 분석하여 정규형 변환 수행
  • 제1정규형(1NF): 반복 속성 제거
  • 제2정규형(2NF): 부분 함수 종속 제거
  • 제3정규형(3NF): 이행적 함수 종속 제거
  • 필요 시 BCNF, 제4정규형, 제5정규형 고려

(5) ERD 작성

  • 도출된 개체, 속성, 관계를 시각적으로 표현
  • 명확한 명명 규칙 적용 및 중복 개체 제거
  • 사용자와의 검토 및 피드백을 통해 정확도 향상

4. 개체 간 관계 이해와 설계 시 고려사항

(1) 카디널리티 고려

  • 1:1 관계는 두 개체 간에 정확히 하나의 대응만 존재
  • 1:N 관계는 한 개체가 여러 개의 개체와 관계
  • M:N 관계는 관계 테이블을 통해 분해 필요

(2) 선택성과 참여 제약

  • 선택성(Cardinality Ratio): 관계에 참여하는 개체 수의 범위
  • 전체 참여 vs 선택적 참여: 전체 참여는 해당 개체가 반드시 관계에 포함되어야 함

(3) 식별 관계와 비식별 관계

  • 식별 관계(Identifying): 자식 개체가 부모의 키를 포함하여 식별자 구성
  • 비식별 관계(Non-identifying): 자식 개체의 기본 키가 부모와 무관함

(4) 관계 속성 정의

  • 개체가 아닌 관계 자체가 보유해야 할 속성 존재 시 관계 속성으로 정의
  • 예: “고객이 상품을 구매한 일시” → 고객-상품 관계에 ‘구매일시’ 속성 정의

5. ERD 작성 시 유의사항

  • ERD는 개체 및 관계의 명확성업무 반영성 확보가 중요
  • 모든 개체와 속성은 업무 용어로 통일성 있게 명명
  • 관계의 방향성 및 카디널리티는 업무 규칙 기반으로 정의
  • 사용자 검토를 통해 누락된 개체나 속성 보완 필요
  • ERD는 정적 구조를 표현하므로, 동적 동작은 프로세스 모델링으로 보완

6. 사례를 통한 이해

  • 예: 대학 시스템 모델링
    • 개체: 학생(Student), 과목(Course), 교수(Professor), 수강(Enrollment)
    • 관계: 학생은 과목을 수강함(Student – Enrollment – Course)
    • 수강 관계는 '성적'이라는 관계 속성 포함
    • 교수는 과목을 강의함 → 교수 – Course는 1:N 관계

7. 결론

  • ERD는 정보 시스템의 구조적 기반을 명확히 설계하기 위한 도구
  • 개체, 속성, 관계의 정교한 식별과 표현을 통해 논리적 데이터 모델 확보 가능
  • 올바른 ERD 작성은 향후 물리 모델 설계, SQL 구현, 시스템 유지보수의 핵심 토대가 됨