DB 설계 or ER모델

정예서·2026년 3월 25일

My_TIL

목록 보기
7/13

데이터베이스 설계

데이터의 구조와 관계를 미리 정의하는 과정!
=> 설계 없이 생성하면 트러블 슈팅이 생길 위험이 있어 구현전에 설계 과정이 필요하다.

  1. 데이터베이스 설계 단계

요구사항 분석: 필요한 데이터 파악 → 요구사항 명세서

개념적 설계: 정보 구조화(추상화), DBMS 독립적(무시) → ER 다이어그램
논리적 설계: ERD를 테이블 구조로 변환 → 논리적 스키마
- 엔티티 => 사각형
- 애트리뷰트 => 타원
- 기본키 : 타원 안에 밑줄을 그어 표시
- 관계 => 마름모
물리적 설계: 실제 저장 구조, 인덱스 설정 → 물리적 스키마

구현: SQL로 실제 DB 생성

  1. ER 모델의 구성 요소와 기호

엔티티(Entity): 관리 대상 (사각형, 명사형)

애트리뷰트(Attribute): 엔티티의 속성 (타원, 기본키는 밑줄)

관계(Relationship): 엔티티 간 연결 (마름모, 동사형)

  1. 카디널리티 (관계의 수)

1:1: 한 사람이 하나의 주민번호를 가짐.

1:N: 한 선생님이 여러 학생을 지도함.

N:M: 여러 학생이 여러 과목을 수강함.

  1. 논리적 설계의 핵심 (변환 규칙)

엔티티 → 테이블 / 애트리뷰트 → 컬럼

N:M 관계의 처리: 관계형 DB에서는 직접 표현이 불가능하여, 두 테이블 사이를 연결하는 '중간 테이블'이 반드시 필요함.

  1. 데이터베이스 설계의 목적 (좋은 설계란?)
    핵심: 데이터의 중복을 최소화하고 일관성을 유지하는 것.
    효과: 갱신 이상 방지, 정확성 유지, 효율적인 데이터 처리.

  2. 정보의 중복과 갱신 이상 (Anomaly)
    설계가 잘못되어 데이터가 중복되면 다음과 같은 3가지 '이상 현상'이 발생합니다. (시험 단골 문제!)

  • 수정 이상: 중복된 데이터 중 일부만 수정되어 데이터가 서로 맞지 않게 됨.
  • 삽입 이상: 원하지 않는 정보를 함께 입력하지 않으면 필요한 정보를 저장할 수 없음.
  • 삭제 이상: 특정 정보를 삭제할 때 삭제되어서는 안 될 유용한 정보까지 함께 삭제됨.
  1. 함수적 종속성 (Functional Dependency)
    정규화의 기준이 되는 아주 중요한 개념입니다.정의: 어떤 속성 A의 값을 알면 다른 속성 B의 값을 유일하게 결정할 수 있는 상태
    예시: 학번을 알면 이름을 알 수 있으므로, 이름은 학번에 함수적으로 종속되어 있다고 합니다.

  2. 정규화 (Normalization) 단계복잡한 테이블을 무단계적으로 쪼개어 이상 현상을 제거하는 과정입니다.
    ① 제1정규형 (1NF)조건: 모든 속성값이 원자값(Atomic Value)이어야 함.의미: 한 칸(셀)에 값이 여러 개 들어있으면 안 되고, 무조건 하나씩만 들어가야 합니다.

    ② 제2정규형 (2NF)조건: 제1정규형을 만족하고, 완전 함수적 종속이어야 함.핵심: 기본키가 여러 속성으로 합쳐진 경우(복합키), 기본키의 일부에만 종속되는 속성(부분 함수적 종속)을 제거하는 단계입니다.쉽게 말해: "기본키 전체에 걸려있지 않고 일부에만 빌붙어 있는 애들을 따로 떼어내서 새 테이블을 만든다!"

③ 제3정규형 (3NF)조건: 제2정규형을 만족하고, 이행적 함수적 종속을 제거해야 함.이행적 종속이란?: ABA \rightarrow B이고 BCB \rightarrow C일 때, 결과적으로 ACA \rightarrow C가 성립하는 관계.핵심: 기본키가 아닌 속성들끼리 서로 종속 관계가 있는 경우를 분리합니다. (예: 학번 \rightarrow 학과명, 학과명 \rightarrow 학과 사무실 번호)

0개의 댓글