ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터 모델링5 - 데이터 모델링의 목표(OLTP,OLAP)
    Data Base/관계형 데이터 모델링 2023. 9. 15. 18:19

    OLTP와 OLAP의 서로 다른 세계, 그리고 데이터 모델링의 목표

    사실 앞선 게시물에서 사용한 디멘션과 팩트 개념은 데이터웨어하우스(Data Warehouse,DW)나 비지니스 인텔리전스(Business Intelligence,BI)라는 정보 분석 영역의 언어이다.  사실 앞선 게시글에서 살펴본 판매량 데이터 모델은 어떤 영역에서는 효율적이지 않은 구조일 수도 있다. 왜그런지 알려면 기관(기업)의 정보 흐름을 알아야한다. 데이터웨어 하우스에 대해 살펴보기전에 다음의 데이터를 성격과 목적에 따라 두 분류로 구분해보자

    1. 은행 고객 A의 계좌 X의 잔액 (결과)

    2. 이동통신 고객 B의 서비스 회선 010-1234-5678번의 최근 1년간 시간대별 통화량 (가공)

    3. 제조회사 C의 상품 재고량 (결과)

    4. 은행 고객 A의 계좌 X에 대한 최근 6개월간 평균 잔액  (가공)

    5. 이동통신 고객 B의 서비스 외선 010-1234-5678번에 대한 이번달 통화 내역(결과)

    6. 제조회사 C의 2021년 분기별, 지역별, 고객 유형별 상품 선호도 (가공)

    홀수 번 데이터들은 온라인에서 이미이루어진 트랜잭션을 데이터베이스에 저장한 거래 처리 데이터이다. 반면 짝수 번 번은 이미 데이터베이스에 저장된 데이터를 가공한 분석 정보다. 기업 운영에 필요한 의사 결정 관점에서는 전자인 거래처리 데이터보다 후자인 분석 정보가 더 큰 가치를 가진다.

     

    거래 처리 영역과 분석 정보 영역은 본질적으로 다른 목적을 가진다. 거래 처리 영역은 비지니스 활동자체를 지원한다. 반면 분석 정보 영역은 비지니스 활동에대한 측정,평가,분석,예측,개선 등을 지원한다. 은행업무를 예로 든다면 거래 처리 영역에서는 계좌 개설, 입금, 출금 이체 등이 처리된다. 그리고 분석 정보 영역에서는 겨래 결과에 기반하여 특정 기간 고객의 평균 잔액, 여신 처리를 위한 고객의 신용도 변화등을 다룬다.

     

    💡tip) 거리 처리 영역과 분석 정보 영역 분리의 필요성

    분석정보가 필요할 때마다 거래 영역에서 데이터를 직접 추출해서 가공하는 것은 현실적으로 꽤 어려운 일이다. 예를 들어 지역별 연간 판매량이나 곡개 유형별 상품 선호도와 같은 정보를 분석하려면 몇 천 만 건의 구매 데이터를 집계해야할지 모르는일이다.

     

    거래 처리 영역을 OLTP(On-Line Transaction Processing)라고 하고, OLTP에 저장된 운영 데이터를 통합하고 변환하여 분석 정보를 생산하는 영역을 OLAP(On-Line Transaction Processing)이라 한다. 통사적으로 OLAP은 DBMS나 OLAP애플리케이션과 같은 정보 분석 도구를 의미하는 용어로 많이 사용되며, OLTP에 대응되는 개념으로는 데이터웨어하우스(DW)라는 용어를 흔히 사용한다. 그러나 DW역시 분석 정보를 위한 통합 영역으로서의 데이터베이스를 의미가 강하므로, 거래 처리에 대응 되는 개념으로서 분석영역을 의미하는 용어로는 OLAP이 더 자연스럽게 느껴진다.

     

    주목할 점음 OLTP와 OLAP이 지향하는 목표가 극명하게 다르다는 것이다. 두 영역에서는 데이터의 발생과 관리 단위, 성격, 종류와 수명 주기뿐 아니라  사용되는 *질의의 형태가 완전히 다르다. 목적이 다르므로 OLTP 모델링과 OLAP 모델링에도 근본적인 차이가 존재한다. 따라서  두영역에서 데이터 모델은 쓰임새, 목적,가치가 다름을 명확히 인식하여야한다.

     

    *질의 : 의심하거나 모르는 점을 물음, 사리의 옳고 그름을 물어서 논의함

     

    표 4-2 OLTP와 OLAP 비교

    구분 OLTP OLAP
    목적 비지니스 활동(거래)지원 비지니스 활동에 대한 평가, 예측
    트랜잭션 유형 insert, update, delete, select select
    데이터 수명 주기 실시간 *ETL 일정에 따른 주기
    관리 단위 정규화가 수행된 테이블 분석을 위한 관련 정보
    시간성 현재 데이터 과거 데이터
    설계 기법 정규화에 기반한 ER모델링 디멘션 모델링
    최적화 방향성 데이터 갱신 효율성, 무결성 극대화 조회성능, 사용성, 접근편의성 

    * ETL : 데이터 추출(Extraction), 변환(Transformation), 적재(Loading)의 약자

     

    RDB에서 테이블들을 정규화하는 이유는 사실 데이터 갱신을 효율적으로 처리하기 위함이라고 할 수 있다. 정규화를 하면 데이터가 함수적 종속성에 기반하여 집약되므로 중복은 최소화되며 무결서은 극대화 된다. 예를들어 고객의 연락처 정보가 제대로 정규화되지 않았다면 거래 트랜잭션 마다 이 정보가 중복 포함될 수 있다. 이 상태에서 특정 고객의 연락처가 바뀌면, 해당 고객의 모든 거래 정보를 찾아 연락처 정보를 일일이 갱신해야한다. 또한 OLTP 모델은 엔티티 사이의 관계, 데이터 발생의 전제, 선행 규칙이 최대한 표현되어야 한다. 상품이 없는 주문이나 고객(주문자)이 없는 주문이 발생해서는 안 되기 때문이다.

     

    반면 OLAP에서는 거래 데이터를 기초로 하여 효과적으로 분석하고 조회하는 것이 주된 관심사다. OLTP의 데이터 관리 단위가 정규화된 테이블이라면, OLAP에서는 분석과 집계를 위한 관련 데이터들의 묶음이 그 단위가 된다.  즉, 통합된 연관 정보가 효과적인 분석, 조회를 위해 구조화 되어야 한다. 

     

     

    출처 - 프로젝트의 성패를 결정짓는 데이터 모델링 이야기 , 김상래 저

    댓글

Designed by Tistory.