← 목록으로

[정처기 필기] 3. 데이터베이스 구축

데이터베이스 구축 - SQL 응용 · 논리/물리 설계 · 데이터 전환 · 무결성·보안


0. 과목 구조 한눈에 (시험용 지도)

하위 영역한 줄 요지시험이 자주 묻는 축
SQL 응용표준 SQL로 정의·조회·제어·트랜잭션 처리DDL/DML/DCL/TCL 구분, 조인·집계·서브쿼리, 뷰·인덱스
논리 DB 설계업무 요구를 릴레이션 구조·제약으로 정제ER 모델, 함수 종속, 정규화(1NF~BCNF), 반정규화
물리 DB 설계성능·저장을 반영한 구현 설계인덱스, 파티셔닝, 파일/접근 경로, 병행제어·락
데이터 전환기존 데이터를 목표 DB로 옮기고 품질 확보ETL, 검증·정제, 매핑·이행 전략
무결성·보안데이터가 규칙을 지키고 비인가 접근을 막음무결성 제약, 권한/역할, 암호화·감사, SQL 인젝션

1. SQL 응용

  • SQL은 DB 정의(DDL), 조작(DML), 제어(DCL), **트랜잭션 제어(TCL)**로 나누어 외우면 채점 기준이 흔들리지 않는다.

1.1 SQL 분류(정처기에서 구분 문제로 매우 자주 출제)

분류대표 문역할
DDLCREATE, ALTER, DROP, (교재에 따라 TRUNCATE를 DDL로 두는 경우도 있음)스키마·객체 구조 정의·변경·삭제
DMLSELECT, INSERT, UPDATE, DELETE데이터 조회·삽입·수정·삭제
DCLGRANT, REVOKE접근 권한 부여·회수
TCLCOMMIT, ROLLBACK, SAVEPOINT트랜잭션 확정·취소·부분 되돌림

1.2 조회 심화(3과목 관점)

  • 집계 함수: COUNT, SUM, AVG, MAX, MINNULL은 집계 시 통상 제외(COUNT(*)는 행 수).
  • GROUP BY / HAVING: WHERE는 그룹화 행 필터, HAVING은 그룹화 그룹 조건.
  • 서브쿼리: 스칼라 서브쿼리, IN, EXISTS(상관 서브쿼리와 함께 자주 출제).
  • 집합 연산: UNION / UNION ALL, INTERSECT, EXCEPT(제품마다 MINUS 등 동의어 존재 가능하나 시험은 표준 용어 위주).
  • 조인: 내부·외부(LEFT/RIGHT/FULL)·교차·자체 조인 — 매칭 실패 시 NULL 채움은 외부 조인의 핵심.

1.3 뷰(View)와 인덱스(Index)

  • : 가상 테이블. 접근 통제·복잡 질의 단순화에 사용. 갱신 가능 뷰는 제약이 많다는 개념 정도를 알면 충분한 경우가 많다.
  • 인덱스: 탐색 비용을 줄이는 보조 구조. 삽입/수정/삭제 비용과 저장 공간이 늘 수 있는 트레이드오프가 시험 문장으로 자주 나온다.

1.4 저장 모듈(교재·기출에서 묶이는 경우)

  • 저장 프로시저(Stored Procedure): 서버에 저장된 절차를 호출해 처리(네트워크 왕복 감소 등 장점이 설명으로 출제).
  • 트리거(Trigger): 특정 이벤트(INSERT/UPDATE/DELETE) 전후에 자동 실행되는 절차.

2. 논리 데이터베이스 설계

  • 논리 설계는 개념 모델을 DBMS에 가깝지만 여전히 구현 세부(디스크 배치 등)와 분리된 수준의 스키마로 만드는 단계다.

2.1 데이터 모델링 흐름(다시 정리)

  1. 요구사항 분석 → 2. 개념 설계(ERD) → 3. 논리 설계(릴레이션·제약·정규화) → 4. 물리 설계(파일·인덱스 등)

2.2 ER 모델 핵심

  • 개체(Entity), 속성(Attribute), 관계(Relationship).
  • 카디널리티(1:1, 1:N, N:M): N:M은 논리 설계에서 교차(연결) 릴레이션으로 풀어내는 문제가 자주 나온다.
  • 약한 개체(Weak Entity): 다른 개체의 존재에 의존하며, 단독으로는 후보키 구성이 어려운 경우(식별 관계).

2.3 릴레이션 이론·무결성(논리 단계에서의 “규칙”)

  • : 슈퍼키 → 후보키 → 기본키(PK) / 대체키.
  • 외래키(FK): 참조 무결성을 논리 스키마로 표현하는 대표 수단.

2.4 함수 종속과 정규화(암기 정확도가 성적을 가른다)

함수 종속(요지)
속성 집합 X의 값이 정해지면 Y의 값이 유일하게 정해지면 X → Y.

이상(Anomaly)
잘못된 설계로 삽입·삭제·갱신 이상이 생길 수 있다는 설명이 출제된다.

정규형핵심 조건(시험용 압축)
1NF속성값은 더 이상 쪼갤 수 없는 원자값
2NF1NF + 부분 함수 종속 제거(복합키의 일부에만 매달린 비주요 속성 분리)
3NF2NF + 이행 함수 종속 제거(비주요가 비주요에 종속되지 않게)
BCNF비자명 함수 종속에서 결정자는 슈퍼키(3NF보다 엄격. 교재·기출 해설에서 후보키로만 요약되는 경우도 있으나, 엄밀한 정의는 슈퍼키)
  • 분해: 무손실 조인 분해 가능 여부, 함수 종속 보존 여부가 이론 문제로 나올 수 있다.

2.5 반정규화(Denormalization)

  • 성능·조회 편의를 위해 의도적으로 정규화를 완화하는 기법(중복 허용, 테이블 통합 등).
  • 장점: 조인 감소, 조회 성능 향상 가능.
  • 단점: 중복으로 갱신 비용·불일치 위험 증가 — 트레이드오프 서술형이 자주 나온다.

2.6 데이터 사전(메타데이터)

  • 데이터 사전/카탈로그: 테이블·컬럼·제약·인덱스 등 정의 정보를 체계적으로 관리한다는 정의 문제로 출제되기도 한다.

3. 물리 데이터베이스 설계

  • 물리 설계는 논리 스키마를 실제 저장·접근 경로로 구체화한다. “DBMS와 운영 환경 종속”이 핵심 표현이다.

3.1 저장·접근 구조

  • 파일/페이지/익스텐트 같은 저장 단위, 레코드 배치, 클러스터링(군집화) 등은 제품마다 용어가 다르지만, 시험은 **“접근 경로를 설계한다”**는 큰 그림이 중요하다.

3.2 인덱스(물리 설계의 대표 카드)

  • B-트리 계열: 범위 검색에 유리한 일반적 구조로 자주 설명된다.
  • 비트맵 인덱스: 카디널리티가 낮은 컬럼 등 특정 조건에서 유리하다는 식의 개념 문제.
  • 클러스터드 인덱스: (제품에 따라) 데이터 물리 배치와 연계된다는 설명 — “한 테이블에 하나” 같은 제품 규칙은 제품 의존적이므로, 기출 해설이 아니면 원리 위주로 기억한다.

3.3 파티셔닝

  • 수평 분할: 행 기준(범위·해시·리스트 등).
  • 수직 분할: 열 기준으로 테이블을 나누어 I/O·보안·배치를 분리.

3.4 트랜잭션과 병행제어(물리·운영 성격이 강한 파트)

ACID

  • A 원자성, C 일관성, I 고립성, D 지속성.

병행 이상

  • 갱신 분실, 모순성(비일관성), 연쇄 복귀 등 용어 구분.

직렬화 가능성·락

  • 2단계 락킹(2PL): 확장 단계와 축소 단계.
  • 데드락: 상호 대기 순환 — 타임아웃, 락 순서 통제, 낙관적 검증 등 대응이 선택지로 나온다.

격리 수준(개념)

  • 낮은 격리는 처리량은 좋을 수 있으나 더티 리드/논리프리터블/팬텀 같은 현상 가능성이 커진다는 서술이 출제된다.

4. 데이터 전환

  • “운영 중인 데이터를 새 DB/새 스키마로 옮기면서 품질을 보증하는 활동”이 큰 틀이다.

4.1 ETL 흐름

  1. 추출(Extract): 원천에서 데이터 수집
  2. 변환(Transform): 코드 매핑, 형식 변환, 통합, 집계, 품질 규칙 적용
  3. 적재(Load): 목표 DB에 반영(초기 적재·증분 적재 등)

4.2 데이터 정제·검증

  • 정제: 중복 제거, 오타·누락 보정, 표준 코드 변환 등.
  • 검증: 건수·합계·샘플·업무 규칙 기반 교차 검증으로 이행 정확성을 증명.

4.3 이행 전략(서술형 포인트)

  • 병행 운영·검증 기간을 두고 점진 전환하는 시나리오, 롤백 계획, 데이터 동기화 같은 운영 안전장치가 문제 지문에 등장한다.

5. 데이터베이스 무결성 및 보안

5.1 무결성 제약(정의 구분이 핵심)

유형요지
개체 무결성PK는 NULL 불가, 중복 불가
참조 무결성FK는 참조 가능한 PK 값이거나(규칙에 따라) NULL 허용 정책이 명확해야 함
도메인 무결성자료형·범위·허용값 집합 준수
사용자 정의 무결성업무 규칙을 CHECK, 트리거 등으로 구현
  • 무결성은 “정확성”만이 아니라 일관된 규칙 유지라는 관점으로 묻는 경우가 많다.

5.2 보안: 접근 통제 모델(용어 매칭)

  • DAC(임의 접근 통제): 데이터 소유자가 권한을 통제.
  • MAC(강제 접근 통제): 보안 등급·라벨 기반의 강한 규칙.
  • RBAC(역할 기반): **역할(Role)**에 권한을 묶고 사용자에게 역할을 부여.

5.3 DB 보안 실무 기법

  • 로 민감 컬럼을 숨김, 최소 권한 원칙, 감사 로그(Audit).
  • 암호화: 전송 구간(TLS 등)과 저장 구분을 지문에서 요구하는 경우가 있다.
  • SQL 인젝션: 문자열 결합 쿼리의 위험, 바인딩(Prepared Statement) 중심의 대응이 정답으로 자주 등장한다.

6. 시험 포인트(암기 체크)

  • 과목명은 **「데이터베이스 구축」**이며, 하위 5영역은 SQL 응용 / 논리 설계 / 물리 설계 / 데이터 전환 / 무결성·보안으로 외운다.
  • SQL은 DDL·DML·DCL·TCL을 표로 구분하는 문제가 매우 흔하다.
  • 정규화는 정의 문장이 틀리면 전부 틀리므로 1NF~BCNF를 **“조건 한 줄”**로 각각 암기한다.
  • 물리 설계는 인덱스·파티셔닝·락/데드락·ACID가 한 세트로 나오는 경우가 많다.
  • 데이터 전환은 ETL + 정제·검증 + 이행 전략(병행/검증/롤백) 키워드를 연결해 기억한다.
  • 보안은 DAC/MAC/RBAC 구분과 **SQL 인젝션 대응(바인딩)**을 우선 복습한다.

7. 스스로 검토할 때 쓰는 오답 노트(빈칸)

  1. 2NF에서 제거하는 종속은 (   ) 함수 종속이다.
  2. BCNF에서 비자명 함수 종속의 **(   )**는 슈퍼키여야 한다.
  3. GROUP BY 이후 그룹 조건은 (   ) 절을 사용한다.
  4. 트랜잭션 확정/취소는 **(   ) / (   )**에 해당한다.
  5. 역할 기반 접근 통제의 약자는 **(   )**이다.
번호정답
1부분
2결정자
3HAVING
4COMMIT / ROLLBACK
5RBAC