6장. 데이터베이스 설계 (ER 모델)
학습 목표
- Entity-Relationship 모델의 기본 개념을 이해한다
- 엔터티, 관계, 속성의 정의와 특징을 학습한다
- ER 다이어그램 작성 방법을 익힌다
- 제약조건과 카디널리티를 파악한다
- ER 모델을 관계형 모델로 변환하는 방법을 학습한다
6.1 ER 모델 개요
Entity-Relationship 모델
- 데이터베이스 설계를 위한 개념적 모델링 도구
- 1976년 Peter Chen에 의해 제안
- 현실 세계의 정보를 엔터티, 관계, 속성으로 표현
- 데이터베이스 설계의 초기 단계에서 사용
ER 모델의 구성 요소
엔터티 (Entity)
- 현실 세계에서 독립적으로 존재하는 객체나 개념
- 다른 엔터티와 구별되는 고유한 특성을 가짐
- 예: 학생, 교수, 과목, 부서
관계 (Relationship)
- 둘 이상의 엔터티 간의 연관성
- 엔터티들 사이의 의미 있는 연결
📝 Note
- 예: 학생이 과목을 수강, 교수가 과목을 강의
속성 (Attribute)
- 엔터티나 관계가 가지는 특성이나 성질
- 예: 학생의 학번, 이름, 주소
6.2 ER 다이어그램
ER 다이어그램 기호
- 엔터티: 사각형
- 관계: 다이아몬드
- 속성: 타원 (기본키는 밑줄)
- 연결선: 엔터티와 관계, 속성 연결
속성의 종류
- 단순 속성: 더 이상 분해되지 않음 (예: 학번)
- 복합 속성: 여러 속성으로 구성 (예: 주소)
- 단일값 속성: 하나의 값 (예: 이름)
- 다중값 속성: 여러 값 (예: 전화번호) → 이중 타원
- 유도 속성: 계산으로 도출 (예: 나이) → 점선 타원
6.3 엔터티와 엔터티 집합
엔터티 집합
- 같은 타입의 엔터티들
강한 vs 약한 엔터티
- 강한 엔터티: 기본키 있음, 독립 존재
- 약한 엔터티: 기본키 없음, 다른 엔터티에 의존
- 약한 엔터티는 이중 사각형, 식별 관계는 이중 다이아몬드
6.4 관계와 관계 집합
관계 집합
- 동일한 타입의 관계들
관계의 차수
- 이진: 두 엔터티 (가장 일반적)
- 삼진: 세 엔터티
- n진: n개 엔터티
관계의 카디널리티
- 1:1 (예: 부서-부서장)
- 1:N (예: 교수-학생)
- M:N (예: 학생-과목)
참여 제약조건
- 전체 참여: 모든 엔터티가 관계에 참여 (이중선)
- 부분 참여: 일부만 참여 (단일선)
6.5 ER 다이어그램 작성 예제
대학 데이터베이스 예제
엔터티:
- 학생(학번, 이름, 주소, 전화번호)
- 교수(교수번호, 이름, 급여, 연구분야)
- 과목(과목번호, 과목명, 학점)
- 학과(학과번호, 학과명, 건물, 예산)
관계:
- 수강(학생-과목, M:N)
📝 Note
- 강의(교수-과목, 1:N)
- 소속(학생-학과, N:1)
- 근무(교수-학과, N:1)
ER 설계 단계
- 요구사항 분석
- 엔터티 식별
- 관계 식별
- 속성 정의
- 제약조건 설정
6.6 ER 모델을 관계형 모델로 변환
변환 규칙
- 강한 엔터티 → 테이블로 변환 (속성 포함)
- 약한 엔터티 → 외래키와 부분키로 구성된 테이블
- 1:1 → 한쪽에 외래키
- 1:N → N 쪽에 외래키
- M:N → 별도 관계 테이블 생성
- 다중값 속성 → 별도 테이블 생성
변환 예제
학생 엔터티 →
Student(학번, 이름, 시, 구, 동)
Student_Phone(학번, 전화번호)수강 관계 →
Takes(학번, 과목번호, 성적, 수강년도)
-- 기본키: (학번, 과목번호)
-- 외래키: 학번 → Student, 과목번호 → Course6.7 확장된 ER 모델
- 특수화: 상위 엔터티를 하위 엔터티로 나눔 (ISA)
- 일반화: 하위 엔터티의 공통 특성을 상위로 추상화
- 집합: 관계를 하나의 엔터티처럼 표현
📝 Note
이 글은 이상호 교수님의 데이터베이스 I 이론 및 실제 교재를 토대로 공부한 내용을 정리한 것입니다.