본문에 오류가 있을 수 있음을 감안하고 봐주시길 바랍니다.
# 문제 풀이 중 오답노트 하면서 나온 내용을 정리한 것
인덱스(Index): 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조이다. 레코드가 저장된 물리적 구조에 접근하는 방법을 제공하고 인덱스를 통해서 파일의 레코드에 빠르게 액세스 할 수 있다. 인덱스의 개수는 최소로 하는 것이 효율적이다. 사용자가 데이터 정의어(DDL)을 이용하여 생성(CREATE), 변경(ALTER), 제거(DROP)할 수 있다.
| 종류 | 내용 |
| 트리 기반 인덱스 | 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것 |
| 비트맵 인덱스 | 인덱스 컬럼의 데이터를 Bit 값인 0 또는 1로 변환하여 인덱스 키로 사용하는 방법 |
| 함수 기반 인덱스 | 컬럼의 값 대신 컬럼에 특정 함수나 수식을 적용하여 산출된 값을 이용하는 것 |
| 비트맵 조인 인덱스 | 다수의 조인된 객체로 구성된 인덱스 |
| 도메인 인덱스 | 개발자가 필요한 인덱스를 직접 만들어서 사용하는 것 |
| 클러스터드 인덱스 | 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식 |
| 넌클러스터드 인덱스 | 인덱스의 키 값만 정렬되어 있고 실제 데이터는 정렬되지 않은 방식 |
뷰(View): 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 가상 테이블이다. 저장장치 내에 물리적으로 존재하지 않지만 사용자에게는 있는 것처럼 간주되며 뷰를 정의할 때는 CREATE문, 제거할 때는 DROP문을 사용한다.
- 장점: 논리적 데이터 독립성을 제공함, 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원해 줌, 사용자의 데이터 관리를 간단하게 해 줌, 접근 제어를 통한 자동 보안이 제공됨
- 단점: 독립적인 인덱스를 가질 수 없음, 뷰의 정의를 변경할 수 없음(ALTER은 사용 불가능), 뷰로 갱신된 내용에 대한 삽입·삭제·갱신 연산에 제약이 따름
클러스터(Cluster): 데이터 저장 시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법이다. 클러스터링 된 테이블은 데이터 조회 속도를 향상시키지만 입력·수정·삭제에 대한 작업 성능을 저하시킨다. 클러스터는 데이터의 분포도가 넓을수록 유리하며 저장 공간을 절약할 수 있다.
- 단일 테이블 클러스터링: 처리 범위가 넓은 경우
- 다중 테이블 클러스터링: 조인이 많이 발생하는 경우
파티션(Partition): 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것을 말한다. 데이터 처리는 테이블 단위로 이뤄지고 데이터 저장은 파티션별로 수행된다.
- 장점: 데이터 접근 시 액세스 범위를 줄여 쿼리 성능이 향상됨, 파티션별로 데이터가 분산되어 저장되므로 디스크 성능이 향상됨, 파티션별로 백업 및 복구를 수행하므로 속도가 빠름, 시스템 장애 시 데이터 손상 정도를 최소화할 수 있음, 데이터 가용성이 향상되고 파티션 단위로 입·출력을 분산할 수 있음.
- 단점: 하나의 테이블을 세분화하여 관리하므로 세심한 관리가 요구됨, 테이블간 조인에 대한 비용이 증가하고 용량이 작은 테이블에 파티셔닝을 수행하면 오히려 성능이 저하됨.
- 파티션의 종류
- 범위 분할(Range Partitioning): 지정한 열의 값을 기준으로 범위를 지정하여 분할함
- 해쉬 분할(Hash Partitioning): 해쉬 함수를 적용한 결과 값에 따라 데이터를 분할하고 범위 분할의 단점을 보완해 데이터를 고르게 분산할 때 유용함. 특정 데이터가 어디에 있는지 판단할 수 없고 데이터가 고른 칼럼에 효과적임
- 조합 분할(Composite Partitioning): 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식. 범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용함
- 목록 분할(List Partitioning): 지정한 열 값에 대한 목록을 만들어 이를 기준으로 분할함
- 라운드 로빈 분할(Round Robin Partitioning): 레코드를 균일하게 분배하는 방식, 각 레코드가 순차적으로 분배되며 기본키가 필요 없다.
분산 데이터베이스: 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러 개의 사이트(Site)에 분산된 데이터베이스를 말한다. 애플리케이션이나 사용자가 분산되어 저장된 데이터에 접근하게 하는 것을 목적으로 한다.
- 위치 투명성(Location Transparency): 액세스하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 액세스 할 수 있다.
- 중복 투명성(Replication Transparency): 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용한다.
- 병행 투명성(Concurrency Transparency): 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않는다.
- 장애 투명성(Failure Transparency): 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리한다.
| 방법 | 설명 |
| 테이블 위치 분산 | 데이터베이스의 테이블을 각기 다른 서버에 분산시켜 배치하는 방법 |
| 분할(Fragmentation) | · 테이블의 데이터를 분할하여 분산시키는 것 · 분할 규칙: 완전성(Completeness), 재구성(Reconstruction), 상호 중첩 배제(Disjointness) |
| 할당(Allocation) | · 동일한 분할을 여러 개의 서버에 생성하는 분산 방법 · 중복 없는 할당과 중복 있는 할당으로 나뉨 # 비중복 할당: 최적의 노드를 선택해서 분산 데이터베이스의 단일 노드에서만 분할이 존재하도록 하는 것 |
- 분산 데이터베이스의 장점: 지역 자치성이 높음, 자료의 공유성이 향상됨, 분산 제어가 가능함, 시스템 성능이 향상됨, 중앙 컴퓨터의 장애가 전체 시스템에 영향을 끼치지 않음, 효용성과 융통성이 높음, 신뢰성 및 가용성이 높음, 점진적 시스템 용량 확장이 용이함
- 분산 데이터베이스의 단점: DBMS가 수행할 기능이 복잡함, 데이터베이스 설계가 어려움, 소프트웨어 개발 비용이 증가함, 처리 비용이 증가함, 잠재적 오류가 증가함
데이터베이스 이중화: 시스템 오류로 인한 데이터베이스 서비스 중단이나 물리적 손상 발생 시 이를 복구하기 위해 동일한 데이터베이스를 복제하여 관리하는 것이다. 하나 이상의 데이터베이스가 항상 같은 상태를 유지하므로 데이터베이스에 문제가 발생하면 복제된 데이터베이스를 이용하여 즉시 문제를 해결할 수 있다. 애플리케이션을 여러 개의 데이터베이스에 분산 처리하므로 부하를 줄일 수 있고 손쉽게 백업 서버를 운영할 수 있다.
- 데이터베이스 이중화 분류
- Eager 기법: 트랜잭션 수행 중 데이터 변경이 발생하면 이중화된 모든 데이터베이스에 즉시 전달하여 변경 내용이 즉시 적용되도록 하는 기법
- Lazy 기법: 트랜잭션의 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달되는 기법, 데이터베이스마다 새로운 트랜잭션이 수행되는 것으로 간주됨
- 데이터베이스 이중화 구성 방법
- 활동-대기(Active-Standby) 방법: 한 DB가 활성 상태로 서비스하고 있으면 다른 DB는 대기하고 있다가 활성 DB에 장애가 발생하면 대기 상태에 있던 DB가 자동으로 모든 서비스를 대신 수행함, 구성 방법과 관리가 쉬움
- 활동-활동(Active-Active) 방법: 두 개의 DB가 서로 다른 서비스를 제공하다가 둘 중 한쪽 DB에 문제가 발생하면 나머지 다른 DB가 서비스를 제공함, 두 DB가 모두 처리를 하기 때문에 처리율 높지만 구성 방법 및 설정이 복잡함
클러스터링(Clustering): 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술, 서버 이중화 및 공유 스토리지를 사용하여 서버의 고가용성(시스템을 오랫동안 정상적으로 운용 가능한 성질)을 제공한다.
- 고가용성 클러스터링: 하나의 서버에 장애가 발생하면 다른 노드(서버)가 받아 처리하여 서비스 중단을 방지하는 방식, 일반적으로 언급되는 클러스터링이 고가용성 클러스터링임
- 병렬 처리 클러스터링: 전체 처리율을 높이기 위해 하나의 작업을 여러 개의 서버에서 분산하여 처리하는 방식

RTO(목표 복구 시간): 비상상태 또는 업무 중단 시점으로부터 복구되어 가동될 때까지의 소요 시간을 의미함
RPO(목표 복구 시점): 비상상태 또는 업무 중단 시점으로부터 데이터를 복구할 수 있는 기준점을 의미함
'정보처리기사' 카테고리의 다른 글
| [정보처리기사 요약 2-7] 자료구조와 정렬 알고리즘 핵심 요약 (0) | 2026.02.25 |
|---|---|
| [정보처리기사 요약 2-6] 암호화, 접근통제, 스토리지(DAS/NAS/SAN) (0) | 2026.02.25 |
| [정보처리기사 요약 2-4] 데이터베이스 정규화(1NF~5NF) 및 반정규화 (0) | 2026.02.24 |
| [정보처리기사 요약 2-3] 릴레이션 구조부터 튜플, 속성, 도메인까지 (1) | 2026.02.24 |
| [정보처리기사 요약 2-2] 개념적/논리적 데이터 모델과 E-R(개체-관계) 모델의 이해 (0) | 2026.02.24 |