달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2011. 1. 27. 14:15

OLAP vs OLTP Work/Database General2011. 1. 27. 14:15

데이터베이스의 모델을 설계할 때, 혹은 데이터 베이스를 사용하는 환경을 결정할 때 가장 중요한 요소 중 하나는 해당 데이터베이스의 용도가 OLTP(Online Transaction Processing)용인지 아니면 DSS(Decision Support System)용인지를 파악하는 것이다.
두 가지는 배타적인 것이 아니므로 OLTP용 데이터베이스에 DSS적인 성격이 포함되기도 하지만, 보통 대부분의 데이터베이스들은 어느 한쪽의 특성이 더 크다.

OLTP
On-Line Transaction Processing
주 컴퓨터와 통신 회선으로 접속되어 있는 복수의 사용자 단말에서 발생한 트랜잭션을 주 컴퓨터에서 처리하여 그 결과를 즉석에서 사용자 단말 측으로 되돌려 보내 주는 처리 형태. 

트랜잭션:단말에서 주 컴퓨터로 보내는 처리 단위 1회의 메시지로, 보통 여러 개의 데이터베이스 조작을 포함하는 하나의 논리 단위. 
예를 들어, 데이터베이스 내의 어떤 표의 수치를 변경하는 경우, 
그 표와 관련된 다른 표의 수치도 변경하지 않으면 데이터 무결성(data integrity)을 유지할 수 없다. 
이런 경우에는 2개의 처리를 1개의 논리 단위로 연속해서 행해야 하는데, 이 논리 단위가 트랜잭션이다. 
1개의 트랜잭션은 그 전체가 완전히 행해지든지, 아니면 전혀 행해지지 않든지 둘 중 하나여야 한다. 
그 이유는 1개의 트랜잭션 처리 도중에 그 트랜잭션의 처리를 중지하면 데이터 무결성이 사라질 우려가 있기 때문이다. 

OLTP용 데이터베이스들은 기업(혹은 조직)내부의 트랜잭션에서 발생되는 데이터들을 효율적으로 저장하는 데에 초점을 맞추고 있다. 트랜잭션(Transaction)의 특징은 일련 작업들이 모두 성공해야만 하나의 트랜잭션이 수행되고, 이를 트랜잭션을 커킷(Commit)했다고 이야기 한다.
트랜잭션 중 단 한 가지 작업에서 오류가 발생했다면, 모든 트랜잭션을 롤백(Rollback)시킨다. 트랜잭션의 역할이 대부분 데이터베이스에 대한 변경 작업이므로, 데이터베이스의 데이터들은 자주 변경되고 액세스된다. 따라서 읽기 작업보다는 쓰기 및 변경, 삭제 작업이 우선하는 경우가 많다.
이러한 OLTP용 데이터베이스의 최대 목적은 현재 기업의 데이터에 대한 무결성을 확보하는 것이다. 트랜잭션이라는 것이 동시에 수 십에서 수 백, 수 천 명의 사용자들이 수행하므로 데이터가 잘못 변경되거나, 잘못된 의미를 가져서는 이를 운영 데이터로 사용할 수 없다. 따라서 데이터 무결성을 확보하기 위해서 두 가지의 주요 원칙을 지켜야만 OLTP라고 할 수 있다.
발생한 데이터 변경 사항이 이용되는 모든 곳에 반영되어야만 한다.
트랜잭션을 지원해야만 한다.
이러한 트랜잭션 지향의 OLTP 데이터베이스는 데이터의 분석보다는 트랜잭션 성능 및 데이터 무결성을 확보하기 위해서 설계된다. OLTP용 데이터 베이스는 트랜잭션을 중요하게 여기므로 수 초 이내에 데이터가 변경되어야 하며, 데이터의 구조는 데이터 무결성을 지키기 위해서 엄격하게 매우 복잡하다. 데이터의 크기도 이력관리를 하지 않는다면 대부분이 수 기가 바이트 이하다.

OLAP
On-Line Analytical Processing
이용자가 직접 데이터베이스를 검색, 분석해서 문제점이나 해결책을 찾는 분석형 애플리케이션 개념. 

대규모 데이터를 이용한 질의 검색 시 발생한 대량의 결과값을 단순히 사용하기는 어렵다. 대부분 이 같은 질의는 복수의 데이터 정보 테이블을 기반으로 처리되고, 요약화된 정보를 얻기 위해 연산 처리가 수반되어 장시간이 소요되기 때문이다. 올랩 툴 또는 올랩 서버는 온라인 검색을 지원하는 데이터 웨어하우스(DW) 지원 도구인데, 이 같은 대규모 연산이 필요한 질의를 고속으로 지원한다.

DSS 용도의 데이터베이스를 OLTP(Online Analysis Processing)이라고 부른다. CRM이나 데이터웨어하우스, 데이터 마트 등이 이러한 OLAP 솔루션에 들어간다. OLTP의 단점들을 극복하기 위해서, 데이터를 분석 및 읽기 작업에 적합하도록 가공하여 사용하게 된다.
이와는 반대로 OLAP 데이터들은 트랜잭션이나 데이터 무결성을 확보할 필요가 없다. 이미 운영 데이터베이스에서 이러한 무결성이 확보된 데이터를 변환/추출한 것이기 때문이다. 동시에 여러 명이 사용하는 OLTP 데이터베이스에 비해서 분석을 위한 수 십 명 내외의 사람들이 사용하므로, 응답 결과도 그다지 빠를 필요는 없다. 그래서 상당 기간의 데이터들을 분석하기 때문에, 다루는 데이터 양은 OLTP보다 많아질 수 있다. 대부분의 정보들이 시간을 기준으로 분석되기 때문이다.

OLTP 와 OLAP의 차이점
OLTP은 현재 업무의 효율적인 처리에 관심을 갖는 반면에 OLAP는 의사결정에 도움되는 데이터 분석에 관심을 가진다.
OLTP와 OLAP 간의 실제적인 관점에서의 주된 차이는 OLTP는 거의 읽고/쓰는 작업이, OLAP는 대량의 읽기 작업이 중심이라는 것이다. OLTP에서의 I/O 작업은 랜덤 I/O 이다. 여기를 읽고서 데이터 수정하고, 또 저기를 읽고 데이터를 삭제한다. 반면, OLAP에서는 순차적인 I/O가 주된 작업이다. 여기서부터 저기까지를 쭈욱 읽어 들인다. 몇 배만큼이나 인데긋 크기가 커질 수 있다. 일기 작업이 주된 목적이기 때문이다.

 구분  OLTP  OLAP
데이터 구조  복잡  단순
 데이터 갱신  동적으로 순간적  정적으로 주기적
 응답시간  수 초 이내  수초에서 몇분 사이
데이터 범위  수십일 전후  오랜기간(몇년)
 데이터 성격  정규적인 핵심 데이터  비정규적인 읽기 데이터
 데이터 크기 수 기가 바이트   수 테라 바이트 
데이터 내용  현재 데이터  요약된 데이터 
 데이터 특성  트랜잭션 중심  주제 중심
 데이터 액세스 빈도  높음  보통
 질의 결과 예측  주기적이며 예측 가능  예측하기 곤란


:
Posted by Elick