[정보처리기사 필기] 제3과목:  데이터베이스 구축
공부

[정보처리기사 필기] 제3과목: 데이터베이스 구축

작성일: 2026년 02월 02일·...

1. 데이터 모델링 및 키(Key)

데이터베이스의 기초 뼈대입니다. 키의 종류와 무결성 제약조건은 매회 출제됩니다.

1) 키(Key)의 종류

포함 관계: 슈퍼키 > 후보키 > 기본키

  • 슈퍼키 (Super Key): 유일성 O, 최소성 X (나를 구분할 수만 있으면 됨, 예: 학번+이름)
  • 후보키 (Candidate Key): 유일성 O, 최소성 O (군더더기 없이 나를 구분, 예: 주민번호, 학번)
  • 기본키 (Primary Key): 후보키 중 선택된 메인 키 (Null 불가, 중복 불가)
  • 대체키 (Alternate Key): 후보키 중 기본키를 제외한 나머지
  • 외래키 (Foreign Key): 다른 테이블의 기본키를 참조하는 키
  • 2) 무결성(Integrity) 제약조건

    데이터의 정확성을 보장하기 위한 규칙입니다.

  • 개체 무결성: 기본키는 Null일 수 없고, 중복될 수 없다.
  • 참조 무결성: 외래키는 참조할 수 없는 값을 가질 수 없다. (부모에게 없는 자식은 없다)
  • 도메인 무결성: 특정 속성값은 정의된 범위(Domain) 내에 있어야 한다. (예: 성별에 '남', '여' 외의 값 불가)

  • 2. 정규화 (Normalization) [출제 빈도 1위]

    데이터 중복을 제거하여 이상 현상(Anomaly)을 막는 과정입니다. 단계별 키워드를 순서대로 외우는 것이 국룰입니다.

    1) 정규화 단계 두음암기: [도.부.이.결.다.조]

  • 1NF (제1정규형): [도]메인이 원자값(Atomic)이어야 함 (반복 그룹 제거)
  • 2NF (제2정규형): [부]분 함수 종속 제거 (완전 함수 종속 만족)
  • 3NF (제3정규형): [이]행 함수 종속 제거 (A->B, B->C 일 때 A->C가 되는 관계 제거)
  • BCNF: [결]정자가 모두 후보키여야 함
  • 4NF: [다]치 종속(Multi-valued Dependency) 제거
  • 5NF: [조]인 종속(Join Dependency) 제거
  • 2) 반정규화 (De-normalization)

    정규화된 엔티티, 속성을 성능 향상을 위해 의도적으로 통합/중복시키는 작업입니다. (정규화 원칙 위배)

  • 목적: 성능 향상, 관리 효율성

  • 3. SQL (Structured Query Language)

    명령어를 3가지로 분류하는 문제와 SELECT문의 실행 순서가 나옵니다.

    1) SQL 분류

  • DDL (정의어): 구조를 생성/변경. [CREATE, ALTER, DROP, TRUNCATE]
  • DML (조작어): 실제 데이터 처리. [SELECT, INSERT, UPDATE, DELETE]
  • DCL (제어어): 권한 및 트랜잭션. [GRANT, REVOKE, COMMIT, ROLLBACK]
  • 2) SELECT문 실행 순서 (매우 중요)

    문법 순서가 아니라 내부 해석 순서를 묻습니다.

  • 순서: FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
  • 팁: 누구로부터(FROM) 조건에 맞는 놈을 추려서(WHERE) 그룹을 짓고(GROUP) 그룹 조건을 보고(HAVING) 뽑아낸 뒤(SELECT) 정렬한다(ORDER).
  • 3) 주요 키워드

  • DISTINCT: 중복 제거
  • LIKE: 패턴 매칭 (%는 모든 문자, _는 한 문자)
  • CASCADE: 부모 데이터 삭제 시 자식 데이터도 연쇄 삭제
  • RESTRICT: 자식 데이터가 있으면 부모 삭제 거부

  • 4. 트랜잭션과 동시성 제어

    1) 트랜잭션의 특성 (ACID)

  • Atomicity (원자성): 모두 실행되거나, 아예 실행되지 않아야 함 (All or Nothing). [Commit/Rollback]
  • Consistency (일관성): 실행 전후 데이터베이스 상태가 모순이 없어야 함.
  • Isolation (격리성/고립성): 실행 도중 다른 트랜잭션이 끼어들 수 없음.
  • Durability (영속성): 성공적으로 완료되면 결과는 영구 저장됨.
  • 2) 로킹(Locking) 단위

    동시성 제어를 위해 데이터에 잠금을 거는 단위입니다.

  • 단위가 큼 (테이블 전체 락): 관리 쉬움, 병행성(동시작업) 수준 낮아짐.
  • 단위가 작음 (행 하나 락): 관리 어려움(오버헤드 증가), 병행성 수준 높아짐.

  • 5. 관계 대수 vs 관계 해석

    이론적인 비교 문제가 나옵니다. 절차적인지 비절차적인지 구분하세요.

    1) 관계 대수 (Relational Algebra)

  • 특징: [절차적] 언어. 원하는 정보를 '어떻게(How)' 유도하는지 기술.
  • 연산자 기호 (그림 문제 대비):
  • Select (시그마 σ): 수평적 부분집합 (행 선택)
  • Project (파이 π): 수직적 부분집합 (열 선택)
  • Join (리본 넥타이 ⋈): 두 테이블 결합
  • Division (나누기 ÷): 포함된 튜플 검색
  • 2) 관계 해석 (Relational Calculus)

  • 특징: [비절차적] 언어. 원하는 정보가 '무엇(What)'인지만 정의.
  • 튜플 관계 해석과 도메인 관계 해석이 있음.

  • 6. 기타 필수 용어

  • 뷰 (View): 물리적으로 존재하지 않는 가상의 테이블. (보안성, 논리적 독립성 제공)
  • 인덱스 (Index): 검색 속도를 높이기 위한 자료구조. (주로 B-Tree 사용)
  • 파티셔닝 (Partitioning): 대용량 테이블을 물리적으로 분할. (범위, 해시, 리스트 등)
  • 시스템 카탈로그: 데이터베이스에 저장된 모든 데이터 개체들에 대한 정의나 명세에 대한 정보가 수록된 시스템 테이블. (데이터 사전이라고도 함)

  • [3과목 합격 전략]

    3과목은 실기 시험과 가장 연계가 깊은 과목입니다.

  • [도부이결다조] 정규화 순서는 무조건 암기하세요.
  • SQL 문제 중 [JOIN] 결과나 [COUNT] 개수 세는 문제는 직접 표를 그려서 풀어봐야 합니다.
  • 관계 대수 연산자 기호(σ, π, ⋈)를 눈에 익혀두세요.