'정보 시스템' 이란, 데이터를 입력 받아서 처리하고, 정보를 산출하는 시스템인데, 기업환경에서는 업무처리나 경영 의사 결정에 필요한 데이터를 수집, 저장, 가공, 분배하는 시스템을 말한다.
이러한 정보 시스템을 오늘날 데이터베이스의 관점으로 보면, 크게 OLTP 와 OLAP로 나눌 수 있다. 본 포스팅에서는 이들이 뭔지, 차이점이 어떻게 되는지에 대해 살펴보자!
OLTP 와 OLAP의 개념
OLTP(On-Line Transaction Processing)
: *트랜잭션 지향 어플리케이션을 손쉽게 관리할 수 있도록 도와주는 정보 시스템의 한 계열로, 일반적인 데이터 기입 및 트랜잭션 처리를 위해 존재하는 정보 시스템이다.
특징)
- 시스템이 사용자 요청에 즉각 반응하는 처리를 가리키는 용어이기도 함.
- 기업에서 가장 기본적으로 사용되는 정보시스템이다.
- 무수히 많이 발생되는 각각의 작업 요청을 오류없이 처리하고, 그 결과 값을 실시간으로 확인시켜줘야 하는 특징이 있다.
- 송수신 자료를 트랜잭션 단위로 압축하여, 기존의 온라인 방식과는 달리, 다수의 이용자가 거의 동시에 이용 가능.
용도)
ex) 은행의 입출금 및 조회, 증권 거래, 회원정보 관리, 쇼핑몰 주문 및 발송 관리, 게시판 기능 등
* 트랜잭션이란?
: DB 내에서 하나의 논리적 기능을 수행하기 위해 행해지는 작업의 단위 또는 한 번에 사용되는 하나 이상의 쿼리를 모아 놓은 쪼갤 수 없는 작업의 논리적인 단위.
트랜잭션의 특성 - ACID
- 원자성(Atomicity)
- 분해가 불가능한 최소의 단위인 하나의 원자처럼 동작한다는 의미.
- 트랜잭션 내의 모든 연산들은 반드시 한 번에 완전하게 전체가 정상적으로 수행되어 완료되거나, 어떠한 연산도 수행되지 않는 All or Nothing의 형태가 됨으로써, 트랜잭션 수행 이후의 결과를 예측할 수 있어야 한다. - 일관성(Consistency)
- 트랜잭션 수행 이전과 이후에도 데이터베이스의 상태가 일관되어야 한다는 성질.
- 데이터베이스의 제약이나 규칙을 깨는 트랜잭션은 수행될 수 없다. - 고립성(Isolation)
- 모든 트랜잭션 각각은 다른 트랜잭션으로부터 독립되어야 한다는 의미.
- 동시에 여러 개의 트랜잭션들이 수행될 때, 각 트랜잭션은 고립되어 있어 연속으로 실행된 것과 동일한 결과를 가져야 한다. - 지속성(Durability)
- 성공적으로 수행된 트랜잭션은 영원히 DB에 반영되는 것을 의미.
- commit이 성공적으로 수행된 이후에는, 런타임 오류 또는 시스템 오류가 발생하여 DB가 다운되더라도, 현재 데이터 상태는 DB에서 영원히 보장된다.
OLAP(On-Line Analytical Processing)
: 방대한 양의 비즈니스 데이터를 분석에 용이하도록 구성하는 것을 지원하는 정보 시스템의 한 계열.
등장배경)
OLTP 데이터베이스는 대개 제 3정규형(3NF)인데, 이는 복잡한 JOIN 연산을 여러 테이블에 수행하는 분석 질의의 경우 컴퓨팅 자원을 많이 소모하게 만든다. 또한 분석 질의는 읽기 작업이 많은데, 이는 인덱스가 많아야 유리한 반면, OLTP 데이터베이스는 쓰기 속도를 최적화하기 위해 인덱스가 상대적으로 적은 편이다. 결정적으로, 작은 단위의 트랜잭션이 지속적으로 왕래하는 OLTP 데이터베이스에서 큰 단위의 분석 질의가 수행되면, 트랜잭션끼리의 경쟁이 야기되어 트랜잭션 속도 및 분석 질의 속도 모두 저하되기 때문에, 분석 질의 전용의 데이터베이스가 필요하게 된다.
특징)
- 기업 환경에서 수시로 사용되는 기존의 OLTP 시스템에 부정적인 영향을 미치지 않도록, 분석에 필요한 복잡한 쿼리를 수행하는 데에 용이하게끔 설계되어 있음.
- 데이터 웨어하우스 또는 데이터 마트에서 나온 대량의 데이터를 다차원적으로 분석할 때 속도를 높일 목적으로 설계됨.
- 데이터를 분석하고 의미 있는 정보로 치환하거나, 복잡한 모델링을 가능하게끔 하는 분석 방법.
데이터 구조)
- 기존의 Data Operation 및 분석은 행(Row)과 열(Column) 형식으로 배열되는 간단한 스프레드 시트를 사용하여 실행하며, 이런 스프레드 시트와 같은 것들은 2개의 차원으로 이루어진 데이터들인데, 데이터 분석의 경우, 보통 서로 다르고 관계 없는 것들로부터 인사이트를 얻게 된다.
따라서 분석이 목적인 OLAP에서는 새로운 데이터 구조가 필요한데, 이렇게 도입된 것이 OLAP 큐브이다.
유형)
- MOLAP(Multi-dimensional On-Line Analytical Processing; 다차원 온라인 분석 처리) : 다차원 OLAP 큐브를 사용하는 전형적인 OLAP 형식으로, 아주 빠른 분석이 가능하지만, OLAP 큐브 사전 처리에 시간이 매우 많이 소요된다. MOLAP은 팩트(데이터 필드)가 숫자이고, 집계 가능할 때 가장 효율적이다.
- ROLAP(Relational On-Line Analytical Processing; 관계형 온라인 분석 처리) : RDBMS와 직접 연동되며, OLAP 큐브를 따로 만들 필요가 없다. *ETL 또는 ELT 프로세스를 통해 OLTP 데이터베이스의 데이터 웨어하우스 또는 데이터 마트가 주기적으로 업데이트 되고, 그 일환으로 집계 테이블이 생성된다. 이때 데이터 웨어하우스를 처음부터 다시 생성하기보다는 증분 데이터로 작업하는 경우가 보통이기 때문에 데이터 사전 처리 작업에 대한 시간이 MOLAP만큼 많이 소요되지 않는다.
- HOLAP (Hybrid On-Line Analytical Processing; 하이브리드 온라인 분석 처리) : ROLAP과 MOLAP을 결합한 방식으로, MOLAP 저장소와 ROLAP 저장소에 나눠서 저장할 수 있다. 일반적으로 OLAP 큐브는 물론, RDBMS의 집계 데이터를 위한 캐시가 존재한다.
용도)
ex) 1년간의 주요 인기 상품 트렌드, 한달 간의 항목별 수입 및 지출 분석, 10년 간의 A 회사의 직급별 임금 상승률 등
* ETL과 ELT
- E (Extract; 추출) : 원본 데이터베이스 또는 데이터 소스에서 데이터를 가져오는 것을 말함. ETL의 경우, 데이터가 임시 스테이징 영역으로 들어가고, ELT의 경우, 즉시 데이터가 Lake 스토리지 시스템으로 이동.
- T (Trasnform; 변환) : 데이터의 구조를 변경하는 프로세스를 의미. 용도에 맞게 필터링, Reshaping, 정제 등의 단계를 통해 필요한 형태로 변환.
- L (Load; 적재) : 데이터를 스토리지에 저장하는 프로세스를 의미.
OLTP와 OLAP의 차이점
구분 | OLTP | OLAP |
주 트랜잭션 형태 | SELECT, INSERT, UPDATE, DELETE | SELECT |
속도 | 수초 이내 | 수초 이상 수분 이내 |
데이터 표현 시간 | 실시간 | 과거 |
관리 단위 | 테이블 | 분석된 정보 |
최적화 방법 | 트랜잭션 효율화, 무결성의 극대화 | 조회 속도, 정보의 가치, 편의성 |
데이터 처리 단위 | 트랜잭션 중심 | 정보 중심 |
상대적 중요도 | 데이터의 정확도, 일관성 | 분석 데이터 결과 출력의 속도 |
데이터 사용 주체 | 시스템 운영자, 이용자 | 데이터 분석가, 의사결정자 |
모델링 차이 | 정규화 중심의 모델링 | 분석, 집계 중심의 모델링 |
참조
https://www.ciokorea.com/news/225564
https://too612.tistory.com/511
https://datalibrary.tistory.com/21
https://covenant.tistory.com/85
'DB' 카테고리의 다른 글
[RDBMS] DB의 정규화 단계(1NF, 2NF, 3NF, BCNF, 4NF, 5NF)의 개념 및 예시 (1) | 2024.01.07 |
---|---|
[RDBMS] RDB 정규화와 이상(Anomaly)현상의 개념 및 예시 (0) | 2024.01.03 |
[DB공통] DB 성능을 위한 모니터링 지표 10가지 (0) | 2022.01.18 |
최근댓글