본문 바로가기

it자격증 준비/정보처리기사(실기)

02. 데이터 입 · 출력 구현 | 트랜잭션/CRUD 분석, 인덱스, 뷰/클러스터, 파티션, 분산 DB 설계, DB 이중화/서버 클러스터링

반응형

 

 

 

049. 트랜잭션 분석 / CRUD 분석

1) 트랜잭션(Transaction)
- 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들 

- 특징 

: Atomicity(원자성)
- 트랜잭션의 연산은 데이터에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 함

 

: Consistency(일관성)
- 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함

 

: Isolation(독립성, 격리성, 순차성)
- 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음 

 

: Durability(영속성, 지속성)
- 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함


2) CRUD 분석
- 프로세스와 테이블 간에 CRUD 매트릭스를 만들어서 트랜잭션을 분석하는 것
- CRUD 매트릭스 

: 2차원 형태의 표로서, 행(Row)에는 프로세스를, 열(Column)에는 테이블을, 행과 열이 만나는 위치에는 프로세스가 테이블에 발생시키는 변화를 표시하여 프로세스와 데이터 간의 관계를 분석하는 분석표

 

3) 트랜잭션 분석
- CRUD 매트릭스 기반으로 테이블에 발생하는 트랜잭션 양을 분석하여 테이블에 저장하는 데이터의 양을 유추하고 이를 근거로 DB의 용량 산정 및 구조의 최적화를 목적으로 함
- 트랜잭션 분석서 : 단위 프로세스와 CURD 매트릭스를 이용하여 작성함

 

 

 


050. 인덱스

1) 인덱스(Index)
- 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인트> 쌍으로 구성되는 데이터 구조 

-종류 

: 트리기반인덱스
- 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것 

 

: 비트맵 인덱스
- 인덱스 컬럼의 데이터를 Bit 값인 0 또는 1로 변환하여 인덱스 키로 사용하는 방법 

 

: 함수 기반 인덱스
- 컬럼의 값 대신 컬럼에 특정 함수나 수식을 적용하여 산출된 값을 사용하는 것 

 

: 비트맵 조인 인덱스
- 다수의 조인된 객체로 구성된 인덱스 

 

: 도메인 인덱스
- 개발자가 필요한 인덱스를 직접 만들어서 사용하는 것

반응형


2) 클러스터드 인덱스/넌클러스더드 인덱스
- 실제 데이터가 정렬이 되었냐 안 되었냐의 차이
- 클러스터드 인덱스 : 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식
- 넌클러스터드 인덱스 : 인덱스의 키 값만 정렬되어 있고 실제 데이터는 정렬되지 않는 방식

 

 

 


051. 뷰 / 클러스터

1) 뷰(View)
- 하나 이상의 기본 테이블로부터 유도된 가상 테이블
- 논리적 데이터 독립성을 제공하지만 독립적인 인덱스를 가질 수는 없음


2) 클러스터(Cluster)
- 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법 

- 단일 테이블 클러스터링 : 처리 범위가 넓을 경우
- 다중 테이블 클러스터링 : 조인이 많이 발생하는 경우

 

 

 

 

052. 파티션

1) 파티션(Partition)
- 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것 

- 범위 분할(Range Partitioning)
: 지정한 열의 값을 기준으로 분할함 

 

- 해시 분할(Hash Partitioning)
: 해시 함수를 적용한 결과값에 따라 데이터를 분할함 

 

- 조합 분할(Composite Partitioning)
: 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식

 

 

 

 

053. 분산 데이터베이스 설계

1) 데이터베이스 용량 설계
- 데이터가 저장될 공간을 정의하는 것


2) 분산 데이터베이스 설계
- 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러 개의 사이트에 분산된 데이터베이스
- 목표 

: 위치 투명성(Location Transparnecy)
- 엑세스하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으
로 엑세스할 수 있음

 

: 중복 투명성(Replication Transparency)
- 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터가 존재하는 것처럼 사 용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행함

 

: 병행 투명성(Concurrency Transparency)
- 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음(일관성 유지) 

 

: 장애 투명성(Failure Transparency)
- 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리(무결성 보장) 

 

- 분산 설계 방법 

: 테이블 위치 분산
:분할 

 - 규칙: 완전성, 재구성, 상호중첩배제 

 - 방법: 수평 분할, 수직 분할
: 할당

 

 

 


054. 데이터베이스 이중화/서버 클러스터링

1) 데이터베이스 이중화(Database Replication)
- 동일한 데이터베이스를 복제하여 관리하는 것
- 변경 내용의 전달 방식에 따라 Eager 기법(즉시!)과 Lazy 기법으로 나뉨 - 구성 방법 : 활동-대기(Active-Stanby) 방법
- 한 DB가 활성 상태로 서비스하고 있으면 다른 DB는 대기하다가 장애 발생하면 대신 수행 : 활동-활동(Active-Active) 방법
- 두 개의 DB가 서로 다른 서비스를 제공하다가 둘 중 하나가 문제면 나머지가 대신 수행


2) 클러스터링(Clustering)
- 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술
- 고가용성 클러스터링 : 하나의 서버에 장애가 발생하면 다른 노드(서버)가 받아 처리하여 서비스 중단을 방지 -병렬처리클러스터링 :하나의작업을여러개의서버에분산하여처리하는방식


3) RTO/RPO
- RTO(Recovery Time Objective, 목표 복구 시간)
: 비상사태 또는 업무 중단 시점으로부터 복구되어 가동될 때까지의 소요 시간 

- RPO(Recovery Point Objective, 목표 복구 시점)
: 비상사태 또는 업무 중단 시점으로부터 데이터를 복구할 수 있는 기준점

 

 

 

 

반응형