🍋 ⚾️ 💻 🎬 🎮

CS/Database

[DB] 03. 데이터 모델링 (Data Modeling) - (3) 개념적 설계

aeightchill 2025. 3. 14. 17:04
728x90

 

 

 

1. ER 모델링 (Entity-Relationship Modeling)

ER 모델은 개체(Entity)와 관계(Relationship)로 현실 세계의 개념 구조를 표현한다.

 

 

ER 다이어그램 (ER Diagram) :

  • 개체(Entity), 속성(Attribute), 관계(Relationship)을 시각적으로 표현한 모델
  • 개체는 사각형, 관계는 마름모, 속성은 타원으로 표시

 

 


 

 

2. ER 모델 주요 개념

 

1 ) 개체 (Entity)

  • 조직 운영에 필수적인 사람, 개념, 사물과 같이 구별되는 모든 것
  • 각 객체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 보유
    • 예) 서점 : 고개, 책 / 학교 : 학과, 과목
  • ER 다이어그램에서 사각형으로 표현

 

 

2 ) 속성 (Attribute)

  • 개체 또는 관계가 가지고 있는 고유의 특성
  • 의미있는 데이터의 가장 작은 논리적 단위
  • ER 다이어그램에서 타원으로 표현

 

📌  속성 유형에 따라 다음과 같이 분류

 

  1. 단일 값 속성 (Single-valued Attribute)
    • 값을 하나만 가질 수 있는 속성
    • 예 ) 고객  개체의 이름, 적립금
  2. 다중 값 속성 (Multi-valued Attribute)
    • 값을 여러 개 가질 수 있는 속성
      • 예) 고객 개체의 연락처, 책 개체의 저자
    • 이중 타원으로 표현
  3. 단순 속성 (Simple Attribute)
    • 의미를 더 이상 분해할 수 없는 속성
      • 예) 책 개체의 이름, ISBN, 가격
  4. 복합 속성 (Composite Attribute)
    • 의미를 분해할 수 있는 속성
      • 예) 고객 개체의 주소 (도, 시, 동, 우편번호), 고객 개체의 생년월일 (연, 월, 일)
    • 해당 속성 아래에 여러 개의 타원으로 표현
  5. 유도 속성 (Derived Attribute)
    • 기존 다른 속성의 값에서 유도되어 결정되는 속성
    • 값이 별도로 저장되지 않음
      • 예) 책 개체의 가격과 할인율로 계산되는 판매가격, 고객의 출생연도를 이용한 나이 계산
    • 점선 타원으로 표현
  6. 키 속성 (Key Attribute)
    • 개체 인스턴스를 식별하는 속성
    • 모든 개체 인스턴스의 키 속성 값이 다름
      • 예) 고객 개체의 고객 ID
    • 둘 이상의 속성들로 구성되기도 함
    • 밑줄로 표현
  7. Null Attribute
    • Null 값이 허용되는 속성
    • Null 값?
      • 아직 결정되지 않거나 모르는 값 또는 존재하지 않는 값
      • 공백이나 0과는 의미가 다름
        • 예) 등급 속성이 null 값이면, 등급이 아직 결정되지 않았다는 것.

 

 

3 ) 관계 (Relationship)

  • 개체와 개체가 맺고 있는 의미 있는 연관성
  • 개체 집합들 사이의 대응 관계 (mapping)을 의미
    • 예) 고객 개체와 책 개체 간의 구매 관계 ("고객은 책을 구매한다.")
  • ER 다이어그램에서 마름모로 표현

 

📌  기준에 따라 관계를 다양한 유형으로 분류

 

  1. 관계에 참여하는 개체 타입의 수
    • 이항 관계   :   두 개체가 맺는 관계
    • 삼항 관계   :   세 개체가 맺는 관계
    • 순환 관계   :   동일 개체 내에서 자기 자신과 맺는 관계
  2. 매핑 카디널리티 (Mapping Cardinality)
    • 1:1 관계
      • 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 하나와 관계를 맺을 수 있다.
      • 개체 B의 각 개체 인스턴스가 개체 A의 개체 인스턴스 하나와 관계를 맺을 수 있다.
    • 1:N 관계
      • 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러 개와 관계를 맺을 수 있다.
      • 개체 B의 각 개체 인스턴스는 개체 A의 개체 인스턴스 하나와 관계를 맺을 수 있다.
    • N:M 관계
      • 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러 개와 관계를 맺을 수 있다.
      • 개체 B의 각 개체 인스턴스가 개체 A의 개체 인스턴스 여러 개와 관계를 맺을 수 있다.
  3. 필수적/선택적 참여
    • 필수적 참여 (전체 참여)
      • 모든 개체 인스턴스가 관계에 반드시 참여
        • 예) 고객 개체가 책 개체와의 구매 관계에 필수적으로 참여
        • 모든 고객은 책을 반드시 하나라도 구매해야 한다. (고객 = 구매자)
      • ER 다이어그램에서 이중선으로 표현
    • 선택적 참여 (부분 참여)
      • 일부 개체 인스턴스만 관계에 참여
        • 예) 책 개체가 고객 개체와의 구매 관계에 선택적으로 참여
        • 고객이 구매하지 않은 책이 존재할 수 있다.
  4. 약한 개체 (Weak Entity) / 오너 개체 (Owner Entity)
    • 약한 개체   :   다른 개체의 존재 여부에 의존적인 개체
    • 오너 개체   :   다른 개체의 존재 여부를 결정하는 개체
    • ER 다이어그램에서 약한 개체는 이중 사각형으로 표현, 관계는 이중 마름모로 표현

 

 


 

 

3. ER 모델링 과정

 

Step 1 ) 개체 추출, 각 개체의 주요 속성과 키 속성 선별

 

개체   :   저장할 만한 가치가 있는 중요 데이터를 가진 사람이나 사물 등

  • 예) 병원 DB 개발에 필요한 개체
    • 병원 운영에 필요한 사람 : 환자, 의사, 간호사 등
    • 병원 운영에 필요한 사물 : 병실, 수술실, 의료 장비 등

개체 추출 방법

  • 요구 사항 문장에서 업무와 관련이 깊은 의미있는 명사 선택
    • 업무와 관련이 적은 일반적이고 광범위한 의미의 명사는 제외
    • 의미가 같은 명사가 여러 개일 경우 대표 명사 하나만 선택
  • 찾아낸 명사를 개체와 속성으로 분류

 

 

Step 2 ) 관계 추출

 

관계   :   개체 간의 의미있는 연관성

 

관계 추출 방법

  • 요구 사항 문장에서 개체 간 연관성을 의미있게 표현한 동사 선택
    • 의미가 같은 동사가 여러 개일 경우 대표 명사 하나만 선택
  • 찾아낸 관계에 대해 Mapping Cardinality와 참여 특성을 결정
    • Mapping Cardinality  :  1:1, 1:N, N:M
    • 참여 특성 : 필수적/선택적 참여

 

 

Step 3 ) ER 다이어그램 작성

 

 

 

 

 

 

 

728x90