## OLTP database #OLTP(On-Line Transactional Processor) database는 트랜잭션( #Transaction ) 기반의 데이터베이스로, 흔히 데이터베이스하면 떠오르는 오라클, MySQL의 경우가 이 OLTP의 예이다. ### OLTP database의 장점 - **트랜잭션 기반** : 데이터 무결성이 보장 - **빠른 트랜잭션 처리** : 데이터가 한 서버에 있기 때문에 트랜잭션 처리가 빠름 - **Read 트래픽 대응 가능** : master-slave 구조 같은 방식으로 대응'은' 가능 ### OLTP database의 한계 - **스케일 아웃 불가** : 보통 단일 로그(WAL)를 사용하기 때문에 스케일 아웃이 힘듬 - **트랜잭션 오버헤드** : 데이터 규모가 커지고 많은 데이터가 사용될 수록 트랜잭션 오버헤드 비용이 증가 - **비효율적인 분석 쿼리** : 분석 목적의 쿼리는 데이터를 변경하지 않기 때문에 트랜잭션 자체가 불필요 ## OLAP database #OLAP (On-Line Analytical Processor) database는 비 트랜잭션 기반의 데이터베이스로, GA4 데이터를 다루는 BigQuery와 Hadoop의 Hive가 이 OLAP의 예이다. ### OLAP database의 장점 - **트랜잭션 오버헤드 비용 없음** : 데이터 변경을 안 하고 늘 데이터는 최종 형태이기 때문에 트랜잭션 없이 데이터 일관성 유지 - **효율적인 분석 쿼리**: 트랜잭션이 없고 데이터 분석에 초점이 맞춰져 있기 때문에 다차원 분석, 롤업, 피벗 및 윈도우 함수와 같은 복잡한 쿼리 효율적으로 처리 가능 ### OLAP database의 한계 - **데이터 무결성 문제** : 쓰기 작업을 하지 않기 때문에 데이터가 최신 상태로 업데이트되지 않음 ## Reference - [Naver D2 - DBMS는 어떻게 트랜잭션을 관리할까?](https://d2.naver.com/helloworld/407507) - S. Haines, 2022, Modern Data Engineering with Apache Spark