정처기 실기 이론: 데이터베이스
개발

정처기 실기 이론: 데이터베이스

작성일: 2026년 07월 12일0

데이터베이스 스키마 3단계 구조 (외부, 개념, 내부)

데이터베이스의 스키마란?

스키마는 데이터베이스의 구조와 제약조건에 대한 전반적인 명세.

외부 스키마

DB에서 사용자 혹은 개발자에게 필요한 값만 보여주는 논리적 구조(DTO와 유사)

  • 하나의 DB에 여러 외부 스키마 존재 가능
  • 하나의 DB에 사용자마다 다른 외부 스키마 보유 가능
  • 서브 스키마라고도 부름
  • 개념 스키마

    DB의 전체적인 논리적 구조

  • 하나의 DB에 하나의 개념 스키마만 존재 가능
  • 개체 간 무결성, 관계, 제약조건, 보안, 접근 조건을 정의
  • DBA가 정의
  • 내부 스키마

    물리장치 관점의 DB 구조

  • 실제 DB에 저장될 레코드 형식을 정의
  • 내부 레코드의 물리적 순서, 데이터 항목의 표현 방법 등을 정의
  • 물리적 저장 구조
  • 하나의 DB에 하나의 내부 스키마만 존재
  • 데이터 독립성

    3단계의 스키마 구조의 핵심은 데이터 독립성 확보.

    구분의미사상(Mapping)
    논리적 독립성개념 스키마가 변경되어도 외부 스키마에 영향 없음외부/개념 사상
    물리적 독립성내부 스키마가 변경되어도 개념 스키마에 영향 없음개념/내부 사상

    데이터 모델 3요소와 DB 설계 4단계

    데이터 모델이란?

    데이터 모델은 현실의 정보를 컴퓨터에서 표현하기 위한 개념적 도구. DB에서 데이터가 어떻게 구조화되고, 어떤 연산이 가능하며, 어떤 제약조건을 따라야 하는지 정의.

    데이터 모델의 3요소

    구분개념설명
    구조데이터의 논리적 구조DB에 표현될 데이터 타입, 객체 타입, 객체 간의 관계를 정의
    연산데이터 처리 방법데이터를 조작하고 검색하는 방법에 대한 명세
    제약조건데이터의 유효성DB가 유지해야 할 유효하고 일관성있는 데이터에 대한 논리적 제약사항

    DB 설계 4단계 요약

    단계핵심 활동주요 산출물
    요구사항 분석사용자 요구사항 수집 및 분석요구사항 명세서
    개념적 설계현실 정보의 추상적 모델링개념적 스키마(내부 스키마), ERD
    논리적 설계DBMS에 맞는 논리적 모델로 전환논리적 스키마(개념 스키마), 테이블 명세서
    물리적 설계저장장치에 맞는 물리적 구조 설계물리적 스키마(외부 스키마), 테이블 정의서

    ERD 표기법

    도형의미도형의미
    사각형 (▭)개체 밑줄 친 타원 (으)기본키 속성
    마름모 (◇)관계 실선 ( ─)개체,관계,속성 연결
    타원 (◯)속성점선(- - -)관계 집합, 관계 속성 연결
    이중 타원 (◎)다중키 속성

    데이터베이스 키

  • 유일성: 하나의 튜플(레코드)를 유일하게 식별
  • 최소성: 가장 적은 수의 속성으로 구성
  • 이름 특징
    기본키Null 불가, 중복 불가, 테이블 당 하나, 자주 변경되지 않음, 후보키 중 선택된 단 하나의 속성
    후보키유일성, 최소성을 만족하는 모든 속성
    대체키유일성, 최소성을 만족하는 후보키 중 기본키가 아닌 속성
    슈퍼키유일성은 만족하지만 최소성을 만족하지 않는 속성
    외래키테이블의 속성이며, 다른 테이블의 기본키인 속성

    RAID: 저장 장치의 성능과 안정성

    RAID란?

    여러개의 물리적인 디스크를 하나의 논리적인 디스크로 사용하는 기술. 성능향상과 데이터 안정성 확보가 목표.

    RAID 핵심 개념

    개념설명
    스트라이핑분산 저장하여 성능 향상
    미러링복제 저장하여 안정성 확보
    패리티오류 검출 및 복구

    RAID 레벨

    레벨기술패리티최소 디스크장애 허용저장 효율요약
    0스트라이핑없음2개불가100%패리티 X, 중복 X → 디스크 1개만 고장나도 전체 데이터 손실
    1미러링없음2개1개50%하나 고장나도 다른 하나에서 백업, 저장공간 50% 사용 가능
    5스트라이핑 + 분산 패리티단일3개1개(N-1)/N1개 디스크 장애 시 복구 가능, 쓰기 성능이 낮음
    6스트라이핑 + 이중 패리티이중4개2개(N-2)/N2개 디스크 장애 시 복구 가능, 쓰기 성능이 5보다 낮음
    10미러링 + 스트라이핑없음4개쌍당 1개50%높은 성능 & 높은 안정성, 저장공간 50% 사용 가능

    데이터베이스 함수 종속성

    함수 종속성이란?

    속성 A의 값이 속성 B의 값을 유일하게 결정할 때 속성 B는 속성 A에 함수적으로 종속된다 = A → B 표기. 이때 A(결정자), B(종속자)라고 표현.

    함수 종속성의 유형

  • 완전 함수 종속(Full Functional Dependency): 기본키 전체에 종속.
  • 부분 함수 종속(Partial Funcitonal Dependency): 기본키가 복합키일 경우 기본키의 일부에 종속.
  • 이행 함수 종속(Transitive Functional Dependency): A가 기본키이고 B,C 가 어떤 후보키에도 포함되지 않는 속성일 때 A→B, B→C, A→C가 성립하는 관계.
  • 함수 종속성과 정규화

  • 2NF: 부분 함수 종속을 제거하여 완전 함수 종속만 남기
  • 3NF: 이행 함수 종속을 제거
  • BCNF: 모든 결정자가 후보키

  • 데이터베이스 이상 현상 (Anomaly)

    이상 현상이란?

    데이터 중복으로 인해 발생하는 현상

    유형정의
    삽입 현상 (Insertion)불필요한 데이터 없인 원하는 데이터를 삽입할 수 없는 현상
    삭제 현상 (Deletion)특정 정보를 삭제하면 원치 않는 다른 정보가 함께 삭제되는 현상
    갱신 현상 (Update)중복된 데이터 중 일부만 수정되어 불일치가 일어나는 현상

    정규화와 반정규화 : 이상 현상 해결 방법

    정규화란?

    함수 종속성 기반으로 테이블을 무손실 분해하는 과정으로 DB에서 데이터의 중복을 최소화하고 데이터 무결성을 보장.

    유형원인해결법
    제1정규형 (1NF)한 셀에 여러 개의 데이터가 다중 값인 경우도메인 원자값 확보
    제2정규형 (2NF)기본키가 복합키일 때 부분 함수 종속 발생부분 함수 종속 제거
    제3정규형 (3NF)일반 속성 간의 종속, 이행 함수 종속 발생이행 함수 종속 제거
    보이스-코드 정규형 (BCNF)일반 속성이 기본키의 일부 속성을 결정결정자 & 비후보키 속성 제거
    제4정규형(4NF)속성 간 1:N 관계, 다치 종속 발생다치 종속 제거
    제5정규형(5NF)후보키가 아닌 속성 간 조인 종속 발생조인 종속 제거

    반정규화란?

    정규화된 테이블 구조를 의도적으로 통합하거나 중복을 허용하여 DB의 성능을 향상하는 과정

  • 주요 기법: 테이블 통합, 테이블 분할(수평/수직), 중복 속성 추가 등

  • 트랜잭션

    트랜잭션이란?

    데이터베이스의 상태를 변화시키기 위한 작업의 최소 단위.

    트랜잭션의 특성

    특성설명
    원자성 (Atomicity)트랜잭션의 연산은 모두 정상 실행 & 미실행이어야 한다.
    일관성 (Consistency)트랜잭션 실행 후에도 DB는 일관된 상태를 유지해야 한다.
    고립성 (Isolation)하나의 트랜잭션이 실행 중일 때 다른 트랜잭션이 끼어들 수 없다.
    지속성 (Durability)성공한 트랜잭션 실행 결과가 영구적으로 DB에 저장되어야 한다.

    데이터베이스 회복 기법

    회복 기법의 핵심 요소

  • 재실행 (REDO) : 트랜잭션 시작, 완료의 기록이 있는 경우, 트랜잭션이 성공적으로 완료 후 변경사항이 저장되지 않았을 때 재적용.
  • 취소 (UNDO) : 트랜잭션 완료가 없고 시작만 있는 경우, 트랜잭션이 실패(FAILED)할 때, 변경 이전의 원래 상태로 돌아감.
  • UNDO와 Rollback은 다른 개념입니다. '장애 시 로그를 분석하여' ⇒ 회복 기법인 UNDO

    회복 기법의 종류

  • 로그 기반 회복: 데이터베이스의 변경사항을 기록, 장애 발생 시 로그를 통해 복구
  • 지연 갱신(Deffered Update): 완료될 때까지 변경 지연, UNDO 필요없고 REDO 사용
  • 즉각 갱신(Immediate Update): 변경 사항을 즉시 반영, REDO와 UNDO 둘 다 필요
  • 체크포인트 회복: 특정 시점에 상태 저장, 장애 발생 시 저장된 최신 시점부터 회복, 복구 시간 단축
  • 그림자 페이징: 현재 페이지, 그림자 페이지 두 테이블 사용, 변경마다 그림자 페이지가 백업
  • 트랜잭션 동시성 제어

    Locking (로킹)

    트랜잭션이 접근하는 데이터 항목을 잠그는 기법으로 동시 접근을 제어하여 일관성을 보장.

    개념설명
    공유 락데이터 읽을 때 사용, 여러 트랜잭션이 동시에 읽지만 쓰기는 불가능
    배타 락데이터 쓸 때 사용, 쓰기 연산을 수행하는 트랜잭션만 읽기/쓰기 가능
    2단계 락킹트랜잭션의 락 획득 / 해제 직렬화 보장 프로토콜. 락 확장과 수축 구성

    트랜잭션 제어 명령어(TCL)

    트랜잭션의 시작, 종료, 취소를 사용자가 명시적으로 제어하는 SQL 명령어.

    명령어역할
    COMMIT트랜잭션의 변경 내용을 DB에 영구 저장
    ROLLBACK트랜잭션의 변경 내용 취소, 이전 상태로 DB 복구
    SAVEPOINT트랜잭션 내 특정 지점 저장, 부분적 ROLLBACK 수행