업데이트:

태그:

카테고리:

  • 운영계 데이터베이스는 트랜젝션에 의해 UPDATE가 주로 일어난다.
  • 하지만 분석계 데이터베이스는 과거 데이터를 통해 유용한 패턴을 찾아내어 비즈니스 전략에 도움을 주는 것을 목표로한다.
  • 기업의 모든 부문의 데이터를 하나로 통합한 매우 큰 데이터를 분석한다.
  • UPDATE보다는 INSERT가 주로 일어나는 데이터를 대상으로한다.


  • 분석계 DB의 3가지 분야를 알아보자.

1.DW

Screen Shot 2022-12-11 at 8 17 30 PM

  • Data Warehouse
    • 과거 데이터의 단순적재
    • 1개 repo에 데이터를 통합한다.
    • 의미론적인 통합이며, 주기적으로 중복된 데이터간 동기화를 수행한다.
    • 운영계 DB에서 ETL로 표준화한 다음, metadata, data Warehouse로 적재한다.


2.OLAP

정의

Screen Shot 2022-12-11 at 8 20 29 PM

  • Online Analytic Processing
    • 다변량 분석을 위해 생겨났다.
    • 복잡한 분석 SQL 쿼리와 뷰를 사용한다.
    • 운영계 DB의 OLTP와 대척점에 있다.



특징

Screen Shot 2022-12-11 at 8 21 54 PM

  • 분석계 DB는 Universal schema로 이루어져있다.
    • 기존 다변량 분석은 X축과 Y축의 데이터로 표현하는데, DB의 속성 수가 많아질수록 다변량 분석은 많아지고, 복잡해지게된다.


  • OLAP은
    • 여러 개의 수치 속성 데이터들을 분석할 수 있다.
    • universal schema의 속성들을 차원속성측정속성으로 나눈다.
    • 차원속성(Dimensions) : 측정 속성이 나타나는 맥락을 의미한다.(지역, 시간, 제품 등)
    • 측정속성(Measures) : 실제 측정값을 의미한다.(매출액, 판매수익, 예산 등)
    • 측정 속성들을 모두 하나의 점 내부에 표현한다.



3D OLAP CUBE

Screen Shot 2022-12-11 at 8 27 15 PM

  • 위와같은 경우에 3차원에 측정치가 2인 그래프를 그릴 수 있는데, 보통 OLAP에선 이를 3D OLAP CUBE로 표현한다.

Screen Shot 2022-12-11 at 8 28 51 PM

  • 3차원 차원 속성으로 product, region, month가 있고, 측정속성으로는 여러 값이 들어올 수 있다.
    • Roll up을 통해 더 집계화된, 합쳐진 데이터를 검색할 수 있으며
      • 상반기, 하반기의 데이터를 합쳐 1년치 데이터를 검색한다
        Screen Shot 2022-12-11 at 8 39 26 PM
    • Drill down을 통해 더 상세한 데이터를 검색할 수 있다.
      • 전자제품을 상세화해 캠코더, 모니터, PC등으로 나눈다.
        Screen Shot 2022-12-11 at 8 39 49 PM



Star Schema

  • 운영계 DB에서 스키마와는 다르게, 분석계 DB는 Universal 스키마에 가깝다.
  • 다만, 차원속성과 측정속성의 추가와 삭제를 자유롭게 하기 위해서 table을 분리해뒀다.
    • 차원속성을 담는 table을 Dimension Table
    • 측정속성을 담는 table을 Fact Table이라고한다.
  • Fact Table이 각 Dimension Table의 키를 참조하고 있다.

Screen Shot 2022-12-11 at 8 44 34 PM



분석계 DB 질의의 특징

Full Scan

  • 1개 이상 차원에 대해 집계함수를 자주 사용한다.
    • 집계함수의 특성 상, group by를 자주사용하게되는데 group by자체는 DB내부적으로 정렬을 하게된다.
    • 따라서, 필연적으로 Full Scan이 발생하게된다.


Extensions

  • 예전 ROLAP에서는 집계를 위한 질의로 임시테이블을 생성해 해결했지만,
    • extension을 통해 1개 SQL로 해결이 가능해졌다.

Screen Shot 2022-12-11 at 8 52 21 PM

  • 위의 쿼리는 extension을 통해 아래처럼 질의될 수 있다.

Screen Shot 2022-12-11 at 8 53 05 PM


CUBE질의

  • 집계의 편의를 위해 Group By 절에 들어오는 칼럼들의 모든 가능한 조합으로 쿼리 결과를 가져온다.

Screen Shot 2022-12-11 at 9 18 08 PM

  • GROUP BY CUBE(A, B);가 전달된다면,
    • 2 ^ 2의 총 4개의 조합으로 질의 결과가 만들어진다.
    • 단, SELECT절에서 SUM은 CUBE질의에 포함되지 않으므로 항상 포함된다.


RANK()

  • OLAP에서 데이터를 정렬하고, rank를 먹히는 특수한 함수이다.

Screen Shot 2022-12-11 at 9 22 18 PM

  • 위 사진에서처럼 제품별 총매출로 정렬해 위에서부터 rank를 생성하고, 이 칼럼으로 WHERE절에서 상위 10개 데이터를 가져온다.


분석계 물리적 DB 디자인

  • 분석계 DB의 가장 중요한 특징이 UPDATE가 없다는 것임을 명심하자.
  • UPDATE가 없다는 것은 INDEX의 약점을 생각할 필요가 없다는 것을 의미하기도한다.
  • 그렇게때문에 분석계 DB에서는 bitmap index, bit slice index, project index등의 여러 인덱스 구조가 생겨났다.


  • 또한, 스키마가 단순하기에 운영계 DB보다 많은 쿼리 최적화를 할 수 있으며,


  • 운영계 DB에서 선택적으로 생성할 수 있었던 Materialized View를 기본적으로 선택한다.



3.DM

  • Data Mining
    • DW, OLAP이 정형데이터 분석이라면, DM은 비정형데이터 분석에 맞춰져있다.
    • 데이터베이스에서 흥미로운 트렌드와 지식에 대한 탐색
    • Non-trivial, implicit, previously unknown, potentially useful한 정보나, 패턴을 찾아낸다.



DM의 역사

1. Statistics

- 1850~1950년대 컴퓨터 나오기 이전시점까지 인간은 통계를 사용했다.
- 컴퓨터가 없었기에, `손`으로 일일히 데이터를 작성하고, 수집했어야만했기에 시간이 오래걸렸다.
- `데이터의 양은 물론 작았을 것`이며,
- `차원도 10개 이하였다.`
- 수집된 데이터는 사람이 일일히 작성했기에 꺠끗했고,
- 손쉽게 의사결정이 가능했다.
- 계산을 쉽게하기위한 단순화된 데이터 모델(가우시안, Poisson)이 생겼다.
	- 추측에 대해 조심히 분석했고,
	- 아웃라이어 데이터는 개별적으로 분석되었다.
- 우리가 현대에 사용하는 통계학의 이론이 이때 발전했다.
	- 회귀분석
	- 최대 가능도 분석
	- 뉴럴 네트워크 등


2. Machine Learning

- 통계학이 컴퓨터에서 사용되기 시작했다.
	- 100 ~ 100,000 레코드, 5 ~ 250 차원이 사용될 수 있었다.
	- 다만, 초기 컴퓨터는 메모리의 크기가 작아 작은 메모리에 한정되어 사용되었다.
	- 그래서 사람이 읽고, 완벽히 이해하기에는 어려웠다.
- `데이터 품질이 좋지 않다`.
- 연산 능력 덕에 `데이터 모델은 더욱 복잡`해졌다.
- 이론보다는 `emppirical(경험적)으로 테스트`하는 방법론이 우세해졌다.
	- 예상되는 오류를 계산하는 것이 아닌, sample로부터 측정한다.
	- 데이터에 대해 통계학적 추측이 적어짐.
- 머신러닝을 최대한 자동화한다.
	- 의사결정 트리
	- 클러스터링
	- Genetic
	- K-means 알고리즘 등


3. Data Mining

- 컴퓨터 성능이 이전보다 빨라졌다.(1995 ~ 2006)
	- 최소 45개 속성
	- 100 ~ 1000개의 공통 속성
	- 연결을 통해 1000여개의 속성을 추가할 수 있다.
- 데이터는 `디스크에만 존재`한다.(메모리에 존재할 수 없을만큼 크기때문)
- `연산은 완전히 자동화`된다.
	- 좋은 성능의 컴퓨터, 효과적인 알고리즘으로 인간의 개입이 더 어려워짐
- 더욱 복잡한 데이터 모델이 사용된다.



데이터마이닝이 생겨난 이유

  • 데이터가 너무 많아졌다.
    1. 데이터 수집의 자동화
    2. DB 기술의 발전으로 DW와 다른 저장소에 수많은 데이터가 저장될 수 있다.
  • 많은 데이터 속에서 내포된 지식을 찾아내는 것이 중요해졌다.



DM 종류

Predictive mining

  • 지도학습
    • 데이터와 분석을 기반으로 데이터베이스의 모델을 구성하고
    • 알려지지 않은 데이터의 특성과 트렌드를 예측한다.
    • 종류
      • Classification
      • Regression
      • Time Series Analysis
      • Prediction


  • 선형 회귀분석(regreesion)
    • 알려진 데이터를 기반으로 모델의 계수를 예측한다. 스크린샷 2022-12-13 18 51 52
    • 위 데이터를 기반으로 y = x + 1이라는 데이터가 만들어진다.


  • Classification
    • decision tree를 구성한다. 스크린샷 2022-12-13 18 54 00


Descriptive mining

  • 비지도학습
    • concise(간결), summarative(요약적), informative(유익한), discriminative(구별적인) 형태로
    • 업무 관련 데이어 셋이나 개념을 묘사한다.
    • 종류
      • 클러스터링
      • Summarization
      • Association Rules
      • Sequence Discovery
    • 알려진 데이터 내에서 연관규칙, 패턴규칙, 분류화, 군집과 비군집, 트렌드와 진화분석을 확인한다.


  • Association Mining
    • 트랜젝션 DB, 관계형 DB, 정보 저장소의 데이터들로부터 빈발하는 패턴, 연관, 상관, 원인 구조를 파악한다.
  • X(body) -> Y(head) 의 연관 패턴이 있다고 가정할때, 지지도(suppoert)신뢰도(confidence)로 표현한다.
    • support : X,Y가 함께 나타나는 트랜젝션 개수(#{head,body}) / 전체 트랜젝션 개수(#t)
    • confidence : X,Y가 함께 나타나는 트랜젝션 개수(#{head,body}) / X만 나타나는 트랜젝션 개수(#head)

스크린샷 2022-12-13 19 31 48

  • 위와같은 트래젝션이 있을때 {Milk, Diaper} -> { Beer }의 연관규칙을 찾는다고 생각해보자.
    • #body : 3
    • #{head, body} : : 2
    • #T : 5
  • 지지도(support) = #{head, body} / #T = 2 / 5 = 0.4
  • 신뢰도(confidence) = #{head, body} / #body = 2 / 3 = 0.67


  • Apriori Algorithm
    • 단계별로 후보군을 생성하고 테스트하는 것을 반복한다.
    • 최소 지지도를 지정하고, 그 아래 숫자의 후보군은 없애고 다음 단계로 넘어간다.
    • 1단계
      스크린샷 2022-12-13 19 38 15
    • 2단계 : 1단계에서 min_sup 미만인 후보군 삭제한 후보군의 2레벨 후보군
    • 3단계
      스크린샷 2022-12-13 19 45 47



  • Cluster 분석
    • 데이터 집합을 군집으로 나눈다.
    • cluster : 데이터의 집합.
    • 군집 내부 유사도는 높지만
    • 군집간 유사도는 낮춘다.
  • 용어 스크린샷 2022-12-13 19 50 29
    • cluster : 데이터의 집합.
    • Outliers : 어느 군집에도 속하지 않는다.
  • 유사도 측정
    • 두 데이터가 얼마나 유사한지 나타내는 수치 측정
    • 데이터끼리 비슷할수록 높다.
    • 종종 [0, 1]까지 떨어진다.


  • 점들 간, 거리계산을 위해서는 Euclidean Distance(유클리드 거리)를 사용한다.


  • K-Means Clustering Method
    • 처음에 모든 데이터는 하나의 클러스터에 속한다.
    • 클러스터링할때 클러스터링의 기준
    • K는 클러스터의 개수를 의미한다.
      • 일반적으로 N개의 군집을 찾는다고하면, K는 3배정도 잡는다.
      • 그 이유는 군집을 세세하게 나눈 후, 그루핑하는 방법이 더 편하기때문이다.
    • 프로세스
      1. K를 정한다.(N개 군집 찾을때 N * 3정도)
      2. 맨 처음에는 랜덤하게, 혹은 수동으로 K개의 mean값을 하나 정한다.
      3. 각 값별로 가장 거리가 가까운 mean값의 군집으로 넣는다.
      4. 모든 값이 군집에 속하게되면 군집마다 중앙값을 다시 계산하고, 3을 반복한다. 스크린샷 2022-12-08 17 11 00

댓글남기기