728x90
1. ER 모델링 (Entity-Relationship Modeling)
ER 모델은 개체(Entity)와 관계(Relationship)로 현실 세계의 개념 구조를 표현한다.
ER 다이어그램 (ER Diagram) :
- 개체(Entity), 속성(Attribute), 관계(Relationship)을 시각적으로 표현한 모델
- 개체는 사각형, 관계는 마름모, 속성은 타원으로 표시
2. ER 모델 주요 개념
1 ) 개체 (Entity)
- 조직 운영에 필수적인 사람, 개념, 사물과 같이 구별되는 모든 것
- 각 객체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 보유
- 예) 서점 : 고개, 책 / 학교 : 학과, 과목
- ER 다이어그램에서 사각형으로 표현
2 ) 속성 (Attribute)
- 개체 또는 관계가 가지고 있는 고유의 특성
- 의미있는 데이터의 가장 작은 논리적 단위
- ER 다이어그램에서 타원으로 표현
📌 속성 유형에 따라 다음과 같이 분류
- 단일 값 속성 (Single-valued Attribute)
- 값을 하나만 가질 수 있는 속성
- 예 ) 고객 개체의 이름, 적립금
- 다중 값 속성 (Multi-valued Attribute)
- 값을 여러 개 가질 수 있는 속성
- 예) 고객 개체의 연락처, 책 개체의 저자
- 이중 타원으로 표현
- 값을 여러 개 가질 수 있는 속성
- 단순 속성 (Simple Attribute)
- 의미를 더 이상 분해할 수 없는 속성
- 예) 책 개체의 이름, ISBN, 가격
- 의미를 더 이상 분해할 수 없는 속성
- 복합 속성 (Composite Attribute)
- 의미를 분해할 수 있는 속성
- 예) 고객 개체의 주소 (도, 시, 동, 우편번호), 고객 개체의 생년월일 (연, 월, 일)
- 해당 속성 아래에 여러 개의 타원으로 표현
- 의미를 분해할 수 있는 속성
- 유도 속성 (Derived Attribute)
- 기존 다른 속성의 값에서 유도되어 결정되는 속성
- 값이 별도로 저장되지 않음
- 예) 책 개체의 가격과 할인율로 계산되는 판매가격, 고객의 출생연도를 이용한 나이 계산
- 점선 타원으로 표현
- 키 속성 (Key Attribute)
- 개체 인스턴스를 식별하는 속성
- 모든 개체 인스턴스의 키 속성 값이 다름
- 예) 고객 개체의 고객 ID
- 둘 이상의 속성들로 구성되기도 함
- 밑줄로 표현
- Null Attribute
- Null 값이 허용되는 속성
- Null 값?
- 아직 결정되지 않거나 모르는 값 또는 존재하지 않는 값
- 공백이나 0과는 의미가 다름
- 예) 등급 속성이 null 값이면, 등급이 아직 결정되지 않았다는 것.
3 ) 관계 (Relationship)
- 개체와 개체가 맺고 있는 의미 있는 연관성
- 개체 집합들 사이의 대응 관계 (mapping)을 의미
- 예) 고객 개체와 책 개체 간의 구매 관계 ("고객은 책을 구매한다.")
- ER 다이어그램에서 마름모로 표현
📌 기준에 따라 관계를 다양한 유형으로 분류
- 관계에 참여하는 개체 타입의 수
- 이항 관계 : 두 개체가 맺는 관계
- 삼항 관계 : 세 개체가 맺는 관계
- 순환 관계 : 동일 개체 내에서 자기 자신과 맺는 관계
- 매핑 카디널리티 (Mapping Cardinality)
- 1:1 관계
- 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 하나와 관계를 맺을 수 있다.
- 개체 B의 각 개체 인스턴스가 개체 A의 개체 인스턴스 하나와 관계를 맺을 수 있다.
- 1:N 관계
- 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러 개와 관계를 맺을 수 있다.
- 개체 B의 각 개체 인스턴스는 개체 A의 개체 인스턴스 하나와 관계를 맺을 수 있다.
- N:M 관계
- 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러 개와 관계를 맺을 수 있다.
- 개체 B의 각 개체 인스턴스가 개체 A의 개체 인스턴스 여러 개와 관계를 맺을 수 있다.
- 1:1 관계
- 필수적/선택적 참여
- 필수적 참여 (전체 참여)
- 모든 개체 인스턴스가 관계에 반드시 참여
- 예) 고객 개체가 책 개체와의 구매 관계에 필수적으로 참여
- 모든 고객은 책을 반드시 하나라도 구매해야 한다. (고객 = 구매자)
- ER 다이어그램에서 이중선으로 표현
- 모든 개체 인스턴스가 관계에 반드시 참여
- 선택적 참여 (부분 참여)
- 일부 개체 인스턴스만 관계에 참여
- 예) 책 개체가 고객 개체와의 구매 관계에 선택적으로 참여
- 고객이 구매하지 않은 책이 존재할 수 있다.
- 일부 개체 인스턴스만 관계에 참여
- 필수적 참여 (전체 참여)
- 약한 개체 (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
'CS > Database' 카테고리의 다른 글
[DB] 04. 정규화 (Normalization) - (1) 이상 현상 (Anomaly) (0) | 2025.03.14 |
---|---|
[DB] 03. 데이터 모델링 (Data Modeling) - (4) 논리적 설계 (0) | 2025.03.14 |
[DB] 03. 데이터 모델링 (Data Modeling) - (2) 요구 사항 분석 (0) | 2025.03.14 |
[DB] 03. 데이터 모델링 (Data Modeling) - (1) 데이터 모델 (0) | 2025.03.14 |
[DB] 02. 데이터베이스 시스템 - 2 (0) | 2025.03.12 |