본문 바로가기
정보처리기사

[정보처리기사] - 트랜잭션 / 클러스터

by Laplace 2024. 7. 14.

트랜잭션과 클러스터에 관한 정리...

 

트랜잭션 (Transaction)

- 트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다.

- 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위로 사용된다.

 

트랜잭션의 특징

특성 의미
Atomicity (원자성) 트랜잭션의 연산은 데이터 베이스에 모두 반영되도록 완료(Commit) 되든지 아니면 모두 반영되지 않도록 복구(Rollback) 되어야함
Consistency (일관성) 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함
Isolation (독립성, 격리성, 고립성) 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어 들 수 없음
Durability (지속성, 영속성) 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함

 

CRUD 분석

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

 

트랜잭션 분석

- CRUD 매트릭스를 기반으로 테이블에 발생하는 트랜잭션 양을 분석하여 테이블에 저장되는 양을 유추하고 이를 근거로 DB의 용량 산정     및 구조의 최적하를 목적으로 한다.

- 트랜잭션 분석은 업무 개발 담당자가 수행한다.

 

 

시스템 카탈로그

- 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.

- 카탈로그들이 생성되면 데이터 사전(DD : Data Dictionary)에 저장되기 때문에 좁은 의미로는 카탈로그를 데이터 사전이라고도 한다.

 

메타 데이터

- 시스템 카탈로그에 저장된 정보를 의미

- 테이블, 인덱스, 뷰, 아이디, 패스워드, 접근 권한, 기본키, 외래키, 함수, 프로시저, 트리거 등등

 

데이터 디렉토리

- 데이터 사전에 수록된 데이터에 접근하는 데 필요한 정보를 관리 유지하는 시스템.

- 시스템 카탈로그는 사용자와 시스템 모두 접근할 수 있지만 데이터 디렉터리는 시스템만 접근할 수 있다.'

 

뷰 (View)

- 뷰는 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다.

- 뷰는 물리적으로 존재하진 않지만 사용자에게는 있는 것처럼 간주된다.

- 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호하는 효율적인 기법으로 사용할 수 있다.

- 뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제된다.

- 뷰를 정의할 때는 CREATE문, 제거할 때는 DROP문을 사용한다.

 

뷰의 장점

- 논리적 데이터 독립성을 제공홤

- 접근 제어를 통한 자동 보안

- 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원해줌

 

뷰의 단점

- 독립적인 인덱스를 가질 수 없음

- 뷰의 정의를 변경할 수 없음

- 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따름

 

 

클러스터 (Cluster)

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

- 클러스터링 된 테이블은 데이터 조회 속도를 향상시키지만 입렵, 수정, 삭제에 대한 성능을 저하시킨다.

- 처리 범위가 넓은 경우에는 단일 테이블 클러스터링을, 조인이 많이 발생하는 경우에는 다중 테이블 클러스터링을 사용한다.

 

인덱스 (Index)

- 데이터 레코드(튜플)를 빠르게 접근하기 위해 <키 값, 포인터>  쌍으로 구성되는 데이터 구조 이다.

- 데이터베이스에서 데이터를 빠르게 검색할 수 있도록 도와주는 특별한 데이터 구조이다. 인덱스는 테이블의 하나 이상의 열을 기반으로 생성되며, 검색 성능을 크게 향상시킬 수 있다. 인덱스는 책의 목차와 비슷한 역할을 합니다.

 

파티션 (Partition)

- 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것을 말한다.

- 성능 저하 방지, 데이터 관리 용이

- 데이터 처리는 테이블 단위, 데이터 저장은 파티션별로 수행

 

파티션의 장점

- 쿼리 성능 향상

- 데이터가 분산되어 저장되므로 디스크 성능 향상

- 백업 및 복구 속도 빠름

- 시스템 장애 시 데이터 손상 정도를 최소화

 

파티션의 단점

- 세심한 관리가 요구

- 테이블간 조인에 대한 비용이 증가

- 용량이 작은 테이블에 파티셔닝을 하면 오히려 성능 저하

 

파티션의 종류

범위 분할 - 지정한 열의 값을 기준으로 분할
ex) 일별, 월별, 분기별
해시 분할 - 해시 함수를 적용한 결과 값에 따라 데이터를 분할
- 특정 파티션에 데이터가 집중되는 범위 분할의 단점 보완
- 데이터를 고르게 분살할 때 유용
- 특정 데이터가 어디에 있는지 판단할 수 없음
ex) 고객번호, 주민번호 등과 같이 데이터가 고른 컬럼에 효과적
조합 분할 - 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할 하는 방식
- 범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용

 

 

데이터베이스 이중화

- 시스템 오류로 데이터베이스 서비스 중단이나 물리적 손상 발생 시 이를 복구하기 위해 동일한 데이터베이스를 복제하여 관리하는 것.

- 여러 개의 데이터베이스를 동시 관리하므로 사용자가 수행하는 작업은 다른 데이터베이스에도 동일하게 적용.

- 애플리케이션을 여러 개의 데이터베이스에서 분산 처리하므로 부하를 줄임.

- 손쉬운 백업 서버 운영

 

데이터베이스 이중화의 분류

Eager 기법 - 트랜잭션 수행 중 데이터 변경이 발생하면 이중화된 모든 DB에 즉시 전달하여 변경 내용이 즉시 적용되도록 하는 기법
Lazy 기법 - 트랜잭션의 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달되는 기법
- 데이터베이스마다 새로운 트랜잭션이 수행되는 것으로 간주됨

 

데이터베이스 이중화 구성 방법

활동-대기 방법
(Active-Standby)
- 한 DB가 활성 상태로 서비스하고 있으면 다른 DB는 대기하고 있다가 활성 DB에 장애가 발생시 대기 DB가 자동으로 모든 서비스를 대신 수행
- 구성 방법과 관리가 쉬워 많은 기업에서 이용됨
활동-활동 방법
(Active-Active)
- 두 개의 DB가 서로 다른 서비스를 제공하다가 둘 중 한쪽에 문제가 발생시 나머지 다른 DB가 서비스를 제공함
- 두 DB가 모두 처리를 하기 때문에 처리율이 높지만 구성 방법과 설정이 복잡함

 

 

 

클러스터링 (Clustering)

- 클러스터링은 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술이다.

- 클러스터링은 서버 이중화 및 공유 스토리지를 사용하여 서버의 고가용성을 제공한다.

고가용성 : 시스템을 오랜 시간동안 계속해서 정상적으로 운영이 가능한 성질

 

클러스터링 종류

고가용성 클러스터링  - 하나의 서버에 장애가 발생하면 다른 서버가 받아 처리하여 서비스 중단을 방지하는 방식
- 일반적으로 언급되는 클러스터링이 고가용성 클러스터링임
병렬 처리 클러스터링 - 전체 처리율을 높이기 위해 하나의 작업을 여러 개의 서버에서 분산하여 처리하는 방식 

 

RTO / RPO

RTO (Recovery Time Objective)
목표 복구 시간
- 비상사태 또는 업무 중단 시점으로부터 복구되어 가동될 때까지의 소요 시간
ex) 장애 발생 후 6시간 내 복구 가능
RPO (Recovery Point Objective)
목표 복구 시점
- 비상상태 또는 업무 중단 시점으로부터 데이터를 복구할 수 있는 기준점을 의미
ex) 장애 발생 전인 지난 주 금요일에 백업시켜 둔 복원 시점으로 복구 가능

 

 

스토리지 (Storage)

- 스토리지는 단일 디스크로 처리할 수 없는 대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술이다.

 

스토리지의 종류

- DAS

- NAS

- SAN

 

DAS (Direct Attached Storage)

- DAS는 서버와 저장장치를 전용 케이블로 직접 연결하는 방식이다.

- 일반 가정에서 컴퓨터에 외장하드를 연결하는 것.

- 저장장치를 직접 연결하므로 속도가 빠르고 설치 및 운영이 쉽다.

- 초기 구축 비용 및 유지보수 비용이 저렴

- 다른 서버에 접근할 수 없고 파일공유 불가

- 확장성 및 유연성 부족

 

NAS (Network Attached Storage)

- NAS는 서버와 저장장치를 네트워크를 통해 연결하는 방식이다.

- 별도의 파일 관리 기능이 있는 NAS Storage가 내장된 저장장치를 직접 관리한다.

- 이더넷 스위치를 통해 다른 서버에서도 스토리지에 접근할 수 있어 파일 공유가 가능하다.

- 장소에 구애받지 않고 저장장치에 쉽게 접근할 수 있다.

- DAS에 비해 확장성 및 유연성 우수.

 

SAN (Storage Area Network)

- SAN은 DAS의 빠른 처리와 NAS의 파일 공유 장점을 혼합한 방식.

- 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식이다.

- 광 채널(FC) 스위치를 이용하여 네트워크를 구성.

- 광 채널 스위치는 서버와 저장장치를 광케이블로 연결하므로 처리속도가 빠르다.

- 저장장치를 공유함으로써 여러 개의 저장장치나 백업 장비를 단일화시킬 수 있다.

- 확장성, 유연성, 가용성이 뛰어남.