꿍스뿡이의 드림빌더
[DATABASE] OLTP, OLAP
안녕하세요. 꿍스뿡이입니다!
오늘은 OLTP와 OLAP에 대하여 알아보도록 하겠습니다.
1. OLTP(Online Transaction Processing)
OLTP를 직역하면 온라인 트랜잭션 처리를 뜻하는데요.
복잡하게 말하면 복수의 사용자 PC에서 발생되는 트랜잭션(Transaction)을 DB서버가 처리하고, 그 결과를 요청한 사용자PC에 결과값을 되돌려주는 과정을 뜻합니다.말이 어렵죠? 쉽게 이야기하면 1개의 요청작업을 처리하는 과정을 OLTP라고 생각하시면 이해하기 편하실것으로 보입니다.
예를 들면, 은행에 돈을 입금하는 과정을 생각해보면 약 3단계의 처리과정을 거쳐야 한다고 가정해보겠습니다.1단계는 돈과 카드를 은행원분에게 전달합니다.2단계는 은행원분이 돈과 카드를 확인한 후 입금을 진행합니다.3단계는 입금이 확인된 내역을 확인합니다. 이 3단계는 중간에 그만두면 안되는 과정이며, 모든 단계가 완벽하게 끝나야 합니다.(1단계를 안하고 바로 2,3단계로 가면 좋겠지만.. ㅎㅎ)이 3단계를 1개의 요청작업 즉, 트랜잭션(Transaction)으로 본다면, OLTP는 이 과정을 완벽하게 처리함을 의미합니다.
즉, 중간에 예상치 못한 변수로 2단계까지만 작업이 진행되고 멈추게 된다면 지금까지 진행된 1,2단계를 무효화시켜야 합니다.(이과정을 롤백(Rollback)이라 합니다.)또한, 1,2,3단계의 작업이 정상적으로 진행되면 작업을 확정해야 합니다. (이 과정을 커밋(Commit)이라 합니다.)돈이 입금되었다고 통장에 찍혀있지만, 실제로 돈이 입금되지 않으면 곤란하겠죠?
이처럼 OLTP의 의미는 무수히 많이 발생되는 각각의 작업요청을 오류없이 처리하고, 그 결과값을 실시간으로 확인시켜줘야 함을 의미합니다.조금 복잡하게 말하면 1개의 트랜잭션에서 발생되는 INSERT, UPDATE, DELETE의 과정을 무결성을 보장하여 처리하고 그 결과를 SELECT 하는 과정을 우리는 OLTP라고 부릅니다.
2. OLAP(Online Analytical Processing)
단어 그대로를 생각해보면 온라인 분석 처리 정도로 해석될 수 있는데요.OLTP가 데이터 자체의 처리에 중점이 된 용어라면, OLAP는 이미 저장된 데이터를 기반하여 분석하는데 중점이 된 용어입니다.
OLAP는 데이터웨어하우스(DW), 쉽게 말해 DB에 저장되어 있는 데이터를 분석하고, 데이터 분석을 통해 사용자에게 유의미한 정보를 제공해주는 처리방법을 의미합니다. 나아가 이런 유의미한 정보를 바탕으로 보다 복잡한 모델링을 가능하게 합니다.
OLAP의 개념을 이해를 돕기 위한 예를 들어 보겠습니다.만약 여러분이 회사의 대표라고 가정해보겠습니다. 1년동안 뒤도 돌아보지 않고 열심히 일을 했고, 1년이 끝나는 시기에 돈은 얼마나 벌었는지, 어디에 얼마만큼의 돈을 썼는지를 표로 정리하고 싶습니다. 해당 자료를 얻기 위해서 우선 필요한것은 1년동안 사용한 내역서가 필요하겠죠?먼저 1년동안 무수히 많이 거래된 통장거래내역을 확보했습니다.그리고 이 통장거래내역을 바탕으로 수입과, 지출금액을 나누고, 다시 지출금액은 항목별로 나눠서 계산을 했습니다. 몇일이라는 시간을 사용하며 1년동안의 벌어들인 금액과 지출항목별 금액을 정리했습니다. 다만, 일일이 수작업으로 확인하다보니 정확한지에 대한 확신이 없습니다.OLAP는 사람이 원하는 이 작업을 컴퓨터로 자료를 추출 및 분석하여 제공하는 과정을 의미합니다.
즉, OLAP는 기존에 저장되어 있는 데이터를 사용자의 요구와 목적에 맞게 분석하여 정보를 제공하는 개념을 의미합니다.
3. OLTP와 OLAP의 차이점
위의 2가지의 개념에 대해 읽어보셨으면 눈치채셨겠지만 2개의 용어는 전혀 다른 의미로 사용하고 있는데요.
(알파벳상으로는 T와 A의 차이일뿐 그 의미는 많이 다르죠?)
OLTP는 현재의 데이터 처리가 얼마나 정확하고, 무결한지가 중요합니다. 그렇기 때문에 주로 데이터의 저장, 삭제, 수정 등의 실질적인 데이터를 수정하는 작업을 의미하는 용어입니다.
OLAP는 이미 저장된 데이터를 바탕으로 어떤 정보를 제공하는지가 중요합니다. 따라서 OLAP는 데이터가 무결하고, 정확하다는 전재를 바탕으로 고객 또는 사용자가 원하는 정보를 어떤식으로 표현하고 제공하는지를 의미하는 용어입니다.
이 2가지 용어를 보면 아시겠지만, 가장 선행되어야할 부분은 바로 OLTP입니다.
위의 예를 바탕으로 설명을 하면 통장에 돈을 입금하는 행위가 오류가 없고, 무결해야만 OLAP에서 예를 들었던 1년간의 수입과 지출 분석이 유의미 합니다. 만약 OLTP작업이 비정상적이었다면 OLAP로 아무리 멋진 자료를 만들어봤자, 그 자료는 자료로서의 가치를 상실하게 될것입니다.
OLTP는 보다 컴퓨터와 가까운 용어이고, OLAP는 보다 사용자에 가까운 용어라는 생각을 가지고 계시다면 2가지 용어에 대한 이해는 충분하리라 생각됩니다.
다음은 OLTP와 OLAP의 차이점에 대해 표로 정리한 내용입니다.
구분 | OLTP | OLAP |
목적 | 비즈니스 활동 지원 | 비즈니스 활동에 대한 평가,분석 |
주 트랜잭션 형태 | SELECT, INSERT, UPDATE, DELETE | SELECT |
속도 | 수초 이내 | 수초 이상 수분 이내 |
데이터 표현 시간 | 실시간 | 과거 |
관리단위 | 테이블 | 분석된 정보 |
최적화 방법 | 트랜잭션 효율화, 무결성의 극대화 | 조회 속도, 정보의 가치, 편의성 |
데이터의 특성 | 트랜잭션 중심 | 정보 중심 |
예시 | 회원정보 수정 | 1년간의 주요 인기 트랜드 |
상품주문 | 한달간의 항목별 수입, 지출 | |
댓글 남기기 및 수정 | 10년간 A회사의 직급별 임금 상승률 |
내용이 도움이 되셨거나 초보 블로거를 응원하고 싶으신 분은 아래 하트♥공감 버튼을 꾹 눌러주세요!
내용의 수정이 있거나 도움이 필요하신 분은 댓글을 남겨주세요!
'2.IT > DB,ORACLE' 카테고리의 다른 글
[ORACLE] 오라클 여러 행을 하나의 컬럼으로 만들기2 (LISTAGG ) (1) | 2020.07.16 |
---|---|
[ORACLE] 오라클 여러 행을 하나의 컬럼으로 만들기 (LISTAGG ) (0) | 2020.07.07 |
[ORACLE] 일자 단일행 여러행으로 만들기 (1) | 2019.06.11 |
[ORA-01850] 시간은 0에서 23 사이어야 합니다. 해결방법. (0) | 2019.05.08 |
[SQL] PROCEDURE (프로시저) (0) | 2018.10.27 |