정보처리기사 기출문제 총정리 ⑫ 데이터베이스 설계 – ERD·정규화·트랜잭션·인덱스

데이터베이스 설계 단계

데이터베이스 설계는 요구사항 분석부터 물리적 설계까지 단계적으로 진행됩니다. 정보처리기사에서는 ERD, 정규화, 트랜잭션, SQL이 핵심 출제 영역입니다.

  • 요구사항 분석 → 개념적 설계(ERD) → 논리적 설계(관계 스키마) → 물리적 설계(인덱스, 파티션)

ERD (Entity-Relationship Diagram)

구성 요소

  • 개체(Entity): 데이터 저장 대상 (사각형)
  • 속성(Attribute): 개체의 특성 (타원형), 기본키는 밑줄
  • 관계(Relationship): 개체 간 연관 (마름모)
  • 카디널리티: 1:1, 1:N, M:N

IE 표기법 (까마귀발 표기)

실무에서 가장 많이 사용되는 ERD 표기법. 관계의 최솟값(필수/선택)과 최댓값(1/다)을 선으로 표현

정규화 (Normalization)

데이터 중복을 제거하고 이상(Anomaly) 현상을 방지하기 위한 테이블 분해 과정

  • 1NF: 모든 속성이 원자값(단일 값)을 가짐
  • 2NF: 1NF + 부분 함수 종속 제거 (복합 기본키의 일부에 종속되는 속성 분리)
  • 3NF: 2NF + 이행적 함수 종속 제거 (A→B→C인 경우 C를 분리)
  • BCNF: 3NF + 결정자가 모두 후보키여야 함

반정규화(역정규화): 조회 성능 향상을 위해 의도적으로 정규화를 완화하는 것

트랜잭션과 ACID

ACID 속성

  • 원자성(Atomicity): 트랜잭션의 모든 연산이 완전히 실행되거나 전혀 실행되지 않음
  • 일관성(Consistency): 트랜잭션 전후 데이터베이스 무결성 제약 조건 유지
  • 격리성(Isolation): 동시 실행 트랜잭션이 서로 영향을 주지 않음
  • 지속성(Durability): 완료된 트랜잭션 결과는 영구 저장

격리 수준 (낮은 순)

  • READ UNCOMMITTED → READ COMMITTED → REPEATABLE READ → SERIALIZABLE
  • 격리 수준이 높을수록 동시성 저하, 일관성 향상

인덱스 (Index)

  • B-Tree 인덱스: 범위 검색에 유리, 가장 일반적인 형태
  • Hash 인덱스: 등치 검색(=)에 최적, 범위 검색 불가
  • 클러스터드 인덱스: 인덱스 순서대로 실제 데이터 정렬 저장, 테이블당 1개
  • 논클러스터드 인덱스: 인덱스와 데이터 별도 저장, 여러 개 생성 가능

시험 핵심 포인트

  • 정규화 이상 현상: 삽입 이상, 삭제 이상, 갱신 이상
  • 2NF: 완전 함수 종속만 허용 (부분 함수 종속 제거)
  • ACID 원자성: ROLLBACK으로 보장 / 지속성: WAL(Write-Ahead Logging)로 보장
  • Dirty Read: READ UNCOMMITTED에서 발생, 커밋되지 않은 데이터 읽기
  • Phantom Read: REPEATABLE READ에서 발생 가능, 없던 행이 나타남

마무리

데이터베이스는 정보처리기사 전체 범위 중 가장 출제 비중이 높은 파트입니다. 정규화 단계별 조건과 ACID 속성은 반드시 암기하고, SQL 실기 문제도 함께 연습하세요.

Leave a Comment