2008년 1월 22일 화요일

데이터웨어하우스 및 데이터마이닝

데이터웨어하우스 및 데이터마이닝
 

* 세부사항 첨부참조


 
1. 데이터웨어하우스

 

가. 데이터웨어하우스 개요

 

(1) 데이터웨어하우스의 정의와 특징

 

데이터웨어하우스(Data Warehouse)는 1990년대 중반 이후 데이터베이스 분야에서 특히 학문계에서보다 산업계에서 그 태동이 시작되었다. 많고 다양한 형태의 오퍼레이셔날 데이터베이스(Operational Database)가 운용되고 시간이 지날수록 그 데이터베이스의 크기가 커지게 되었다. 따라서 데이터베이스 위에서 의사 결정(decision making) 등을 위해 사용되는 다양한 종류의 응용프로그램들은 그 질의(query) 수행이 원만하게 이루어지기 위하여 오퍼레이셔날 데이터베이스 위에 새로운 형태의 통합된 데이터 저장소(repository)가 필요했는데, 이것이 데이터웨어하우스가 등장한 배경이라 할 수 있다.


데이터웨어하우스의 정의에는 여러 가지가 있지만 데이터웨어하우스 시스템 아키텍처를 초창기에 이끈 W.H. Inmon에 따르면, "데이터웨어하우스란 의사 결정 프로세스를 지원하도록 데이터를 1) 주제 지향적(Subject-Oriented)이고, 2) 통합(Integrated) 되고, 3) 시계열적(Time- Variant)이고, 4) 비휘발성(Non-Volatile)이게 모아 놓은 것(collection)"을 의미한다. 이 정의에서 사용된 4개의 의미는 다음과 같다.


(가) 주제 지향(Subject-Oriented)


데이터웨어하우스는 조직이 통상적으로 운용하는 트랜잭션 프로세싱을 위한 일반적이고 다양한 종류의 데이터의 저장소가 아니며, 의사 결정에 필요한 특정 주제(subject)의 데이터만을 가지고 그 외의 데이터는 포함하지 않는다.

 

(나) 통합(Integrated)
데이터웨어하우스에 저장, 관리되는 데이터는 일반적으로 다수의 서로 다른 형태의 데이터베이스로부터 통합(integrated)된 것이다.

 

(다) 시계열 (Time-Variant)
데이터를 이용해 의사 결정을 하는데 가장 유용한 측면중의 하나는 데이터가 시간에 따라 어떻게 변하였는지를 살피는 것이다. 따라서 대부분의 데이터웨어하우스에는 시간에 따라 변화된 데이터 정보를 저장한다.

 

(라) 비휘발성(Non-Volatile)
데이터웨어하우스는 오퍼레이셔날 데이터베이스와는 물리적으로 별도로 데이터를 저장한다. 오퍼레이셔날 데이터베이스에서 필요한 트랜잭션 관리, 복구 기법, 동시성 제어 기법 등은 중요시되지 않는 경우가 대다수이다. 그 대신 정기적으로 데이터를 오퍼레이셔날 데이터베이스로부터 로딩하고 로딩된 데이터를 액세스하는 기법이 중요시된다.

 

(2) 오퍼레이셔날 데이터베이스와의 차이점

데이터웨어하우징 시스템을 현재 상업적으로 사용되는 데이터베이스 시스템과 비교하면 데이터웨어하우징 시스템의 이해가 더 쉽다. 오퍼레이셔날 데이터베이스 시스템이 주로 조직이 필요로 하는 일상 업무(day-to-day operations)를 위한 OLTP(On-Line Transaction Processing)을 위한 시스템이라면, 데이터웨어하우징 시스템은 데이터 분석이나 의사 결정 등을 지원하는 OLAP(On-Line Analytical Processing)을 위한 시스템이다.


OLTP시스템과 OLAP시스템의 주요 차이는 다음과 같은 측면으로 요약 될 수 있다.

 

나. 다차원 데이터 모델

 

(1) 데이터 큐브

데이터웨어하우스와 OLAP 도구들은 다차원(multi-dimensional) 데이터 모델을 기반으로 하는데, 조직이 원하는 여러 차원(측면, dimension)에서 데이터 모델링이 데이터 큐브(Data Cube)를 통해 이루어진다. 데이터 큐브와 다차원 데이터 모델링을 설명하기 위해 먼저 차원(Dimension)과 사실(Fact)이란 두 용어를 설명하자.


차원(Dimension)이란 조직이 데이터 레코드를 운용하는 이유의 대상이 되는 측면을 의미하고, 사실(Fact)이란 숫자적으로 표현되는 값을 의미한다. 예를 들어 가나다 백화점이 백화점 관리에 따른 의사 결정을 위한 ‘가나다 판매분석 데이터웨어하우스’를 만드는데, 관심 있는 측면이 연도, 품목, 지점에 따른 총 판매 금액이라 하자. 이 경우 차원(Dimension)은 연도, 품목, 지점 세 가지이고, 총 판매 금액은 사실(Fact)이 된다. 따라서 ‘가나다 판매분석 데이터웨어하우스’는 3차원 데이터 모델이 필요한데, 어떻게 데이터 큐브를 통해 이루어지는지 [그림 4-10-16]을 참고로 설명하기로 한다.


[그림 4-10-16] 상단 왼쪽 테이블은 연도라는 하나의 차원에 대한 총 판매 금액을 표시하며 이에 해당하는 1차원 데이터 큐브이다. 상단 오른쪽에는 연도와 품목이라는 두 개의 차원에 대한 총 판매 금액을 테이블 형태와 이에 해당하는 2차원 데이터 큐브가 있다. 여기에 지점별로 다시 총 판매 금액을 보여주기 위해 연도, 품목, 지점의 세 차원에 대한 테이블과 이에 상응하는 3차원 데이터 큐브가 그림 하단에 나타난다. 큐브란 용어 자체는 기하학적으로 3차원을 의미해 용어상 혼동을 줄 수 있겠지만 데이터 큐브에서는 원하는 차원의 일반적인 n차원을 의미한다.


다차원 데이터 모델을 위한 데이터 큐브에서 각각의 데이터 큐브를 큐보이드(cuboid)라고도 부르며, 이러한 큐보이드 간에는 [그림 4-10-17]과 같이 래티스(lattice) 관계가 형성되게 된다.


‘가나다 판매 분석 데이터웨어하우스’를 이용하여 예를 들어 경영자가 지점별 예산 편성이나 특화 분야 선정을 하는 의사 결정을 내리기 위해 질의 패턴중 대표적인 것으로는 드릴다운과 롤업이 있다. 연도별 총 판매 금액, 다시 연도와 품목별 총 판매 금액, 그리고 연도, 품목, 지점별 총 판매 금액 정보를 계산해 내는 방식으로 점점 더 기존 차원에 또 다른 차원을 첨가해 세분화된 질의를 하는 질의 패턴을 드릴다운(Drill- Down)이라 한다. 이와 반대로 차원 수를 줄여가며 점점 요약된 형태의 정보를 얻어 나가는 질의 패턴은 롤업(Roll-Up)이라 한다. 이 밖에 슬라이싱(Slicing), 다이싱(Dicing), 피봇(Pivot) 등도 흔히 나타나는 질의 패턴이다.

 

(2) 스타 스키마/스노우플레이크 스키마

 

앞서 살펴보았듯이 데이터웨어하우스에는 다차원 모델이 적합한데 이를 논리적 (Conceptual)으로 설계할 때 제일 자주 사용되는 스키마는 스타 스키마(Star Schema)와 스노우플레이크 스키마(Snowflake Schema)이다.


스타 스키마는 필요한 사실과 기타 속성들로 이루어진 사실 테이블과, 관심있는 차원과 그에 따른 부가적인 정보들을 각각 하나의 차원 테이블로 설계해, 사실 테이블과 차원 테이블을 외부키(Foreign Key)로 연결할 수 있도록 한다. 그림 상으로 보면 마치 별 모양이 되도록 구성한 스키마이다. 스타 스키마의 변형인 스노우플레이크 스키마(Snowflake Schema)는 차원 테이블을 다시 정규화(Normalize)함으로서 이들 테이블들이 마치 눈꽃(Snowflake) 모양이 되도록 만든 스키마이다.

 

다. 데이터웨어하우스 아키텍처와 데이터웨어하우징 시스템

 

(1) 아키텍처와 OLAP 구현 분류


데이터웨어하우징 시스템은 통상적으로 데이터 소스로부터 데이터를 클리닝하고 로딩하며 메타 정보 등을 관리하는 데이터웨어하우스 서버를 하위 티어에 두고, 중간 티어에 OLAP 프로세스 서버를 두며, 상위 티어에 데이터마이닝 등의 의사 결정 응용 프로그램 도구를 두는 3-티어 아키텍처를 가진다.


OLAP 서버는 크게 ROLAP과 MOLAP 그리고 HOLAP의 세 종류로 구분해 볼 수 있다. ROLAP(Relational OLAP) 서버란 관계형 데이터베이스나 확장된 관계형 데이터베이스를 사용해 다차원 모델링되는 데이터 큐브를 테이블 형태로 저장 운용하는 방식을 말한다. MOLAP (Multidimensional OLAP) 서버란 데이터 큐브를 실제로 어레이를 기반한 다차원 저장 엔진을 사용하여 저장 운용하는 방식이다. HOLAP (Hybrid OLAP) 서버는 말 그대로 ROLAP과 MOLAP을 혼용하는 방식을 의미한다.

 

(2) 데이터웨어하우징 시스템

현재 상업적으로 개발된 데이터웨어하우징 시스템은 많으나 그 중 몇 가지를 들면 다음과 같다. IBM사에서는 Informix eXtended Parallel Server(XPS), Readbrick Warehouse, DB2 OLAP Server 등이 있으며, Oracle사에서는 Oracle Data Warehousing이, Microsoft사에서는 MS SQL Server OLAP Services,NCR사에서는 TeraData Warehousing, Sybase사에서는 Sybase Anywhere Studio, Microstrategy사의 Microstrategy OLAP Services, Hyperion 사의 Essbase OLAP Server등을 들 수 있겠다.

 

2. 데이터마닝

 

가. 데이터마이닝 개요

 

데이터웨어하우스와 비슷한 시기에 데이터베이스 분야를 중심으로 연구가 활발하게 시작된 분야가 데이터마이닝(Data Mining)이다. 90년대 중반이후에 데이터베이스나 데이터웨어하우스의 크기는 웹 로봇과 같이 데이터를 수동이 아닌 자동으로 수집하는 도구의 대중화와 오랜 기간의 시계열적 데이터 량의 증가 등으로 그 크기가 급속도로 커졌고, 이를 시스템이 기술적으로 감당할 수 있게 됨으로서 데이터마이닝이란 새로운 응용 분야가 탄생할 수 있었다.


데이터마이닝은 ‘대용량의 데이터에서 필요한 지식(Knowledge)을 얻고자 하는 과정’이라 간단히 정의할 수 있는데, 데이터베이스에서 분야에서는 지식 발견(KDD : Knowledge Discovery in Databases)이라고도 불리며, 그 응용 분야에 따라 비즈니스 인텔리전스, 지식 추출, 정보 분석 등의 용어로도 불린다. 여기서 발견하고자하는 지식은 뻔한 사실이 아니고(Non-Trivial), 데이터에 직접적으로 나타나지 않고 내포되었으며(Implicit), 기존에 발견되지 않은, 잠재적으로 유용한 지식을 의미한다.


데이터마이닝은 잠재적으로 폭 넓은 응용 분야를 가지고 있는데 고객 구매 성향 분석, 타겟 마케팅, 크로스-마켓팅 등의 마켓팅 분석 및 관리 분야, 위험 분석 및 관리 분야, 사기 상행위 발견 및 예측 분야, 텍스트 나 웹 등에서의 정보 발견, DNA 데이터 분석 및 의료정보학, 기타 스포츠, 과학 등을 망라하는데 데이터마이닝 기술이 발전하면서 그 응용의 폭이 점점 더 커지고 있는 추세이다.

나. 지식발견과정 : 데이터마이닝


데이터마이닝은 일반적으로 다음 [그림 4-10- 20]과 같은 과정을 밟는다.


데이터 클리닝(cleaning)과 통합 : 데이터 소스는 서로 다른 관계형 데이터베이스로에서부터 파일 혹은 이메일 자료 등 다양할 수 있으며 그 데이터 형식도 다양할 수 있다. 이 과정에서는 에러를 보정하고 포맷을 통일시키고 데이터의 일관성을 유지하며 스키마를 통합하는 등의 작업을 수행한다.


데이터 선별과 변환 : 데이터웨어하우스와 같은 통합된 데이터 저장소로부터 분석작업에 필요한 데이터를 선별하고 데이터마이닝을 수행할 수 있는 형태로 데이터를 변환한다.
데이터마이닝 : 데이터로부터 다양한 형태의 마이닝 기법을 적용시켜 패턴을 추출해 낸다.


패턴 평가와 표현 : 추출된 패턴이 얻고자하는 지식에 필요한 것인지를 척도에 맞추어 평가해보고 궁극적으로 사람이 이해할 수 있는 방법으로 지식을 표현한다.

 

다. 데이터마이닝 시스템 아키텍처와 필요 기능

 

[그림 4-10-20]에서 제시된 데이터마이닝 과정을 처리하기 위한 데이터마이닝 시스템의 아키텍처는 [그림 4-10-21]과 같이 데이터베이스/데이터웨어하우스 서버, 데이터마이닝 엔진, 패턴 분석기, 사용자 인터페이스 등으로 구성될 수 있다.


데이터마이닝 시스템에서 필요한 기능적 요소를 요약해 보면 다음과 같다.


(1) 개념 설명 : 특징화(Characterization)와 비교(Discrimination)


예를 들어 백화점 판매 분석 데이터웨어하우스에서 고객들의 분류에 따른 물품별 판매 패턴을 분석하여 그로부터 백화점 경영에 대한 지식을 얻는데 데이터마이닝 기법을 도입한다 하자. 그러면 SRAM, DRAM 등은 메모리로 분류되고, 다시 이는 하드디스크, PC, 모니터 등을 포함하는 컴퓨터라는 물품으로 분류되는 등의 물품 분류가 필요하다. 또 고객별 성향을 20대 30대 등의 나이별 분류에서 씀씀이가 큰 고객, 신세대 고객 등의 분류도 필요할 수 있다. 이와 같이 데이터를 클래스화하고 개념화하기 위해서는 비슷한 부류의 데이터가 가지고 있는 성질 등을 일반적인 용어를 사용하여 요약(Summarize)하는 특징화(Characterization)와, 비교되는 부류의 데이터와 대조를 하여 클래스화하는 비교(Discrimination) 기법 등이 필요하다.


개념의 효율적인 요약, 특징화 등을 위하여, 데이터 큐브 기반 일반화 기법, 속성중심 추론(Attributed-Oriented Induction) 기법, 표준 편차(Standard Deviation)나 중앙집중 경향(CentralTendency)등의 통계적 요약기법, 일반화 기반 추론(Generalization-Based Induction) 기법, 속성 연관성(Attribute Relevance) 파악 기법 등이 사용된다.

 

(2) 연관성 법칙(Association Rule)


연관성 법칙(Association Rule)이란 어떤 속성들이 가지는 값이 자주 나타나는 조건을 보여주는 것인데,형식적으로는 A1∧A2∧...∧An⇒B1∧B2∧...∧Bm 같이 논리적 폼으로 쓰여질 수 있다. 여기서 프레디킷(Predicate) Ai와 Bj에는 각각 속성과 그 값이 나타내며 ∧는 논리곱을 의미한다. 예를 들어 나이(X,“35..45”)∧성별(X,“남자”)∧자녀여부(X,“예”)⇒구매(X,“컴퓨터”) [지지도=40%, 신뢰도=75%]라는 연관성 법칙은 “나이가 35에서 45세 사이에 있고 자녀가 있는 남자는 컴퓨터를 구매한다”를 의미한다. 연관성 법칙은 지지도(support)와 신뢰도(confidence)가 같이 수반될 때 연관성 법칙으로서의 의미가 제대로 파악될 수 있다.

 

지지도는 연관성 법칙에 나타나는 각 프레디킷을 모두 만족시키는 데이터가 전체 데이터에서 나타나는 확률을 의미하고, 신뢰도란 주어진 조건 안에서 법칙이 성립하는 확률을 의미한다: 지지도(A⇒B) = P(A∪B), 신뢰도(A⇒B) = P(A|B). (P는 확률을 의미함)
예를 들어 위에서 지지도와 신뢰도의 확률 계산이 트랜잭션 숫자에 기준한 통계로 이루어 졌다면, 지지도=40%가 의미하는 바는 전체 백화점 판매 데이터베이스에서 나타나는 트랜잭션 숫자 중에서 나이가 35에서 45세 사이에 있고 자녀가 있는 남자가 컴퓨터를 구매한 트랜잭션의 숫자의 비율이 0.4임을 의미한다. 또 신뢰도=75%가 의미하는 바는 나이가 35에서 45세 사이에 있고 자녀가 있는 남자가 구매한 트랜잭션 가운데 컴퓨터를 구매한 트랜잭션의 비율이 0.75라는 의미이다.


일반적으로 높은 지지도와 높은 신뢰도를 가진 연관성 법칙일수록 좋은 법칙이라 할 수 있겠는데, 최소지지도와 최소 신뢰도를 시스템이 정하고 이를 넘는 지지도와 신뢰도를 가진 연관성 법칙을 스트롱(Strong) 연관성 법칙이라 부른다. 대용량 데이터베이스에 존재하는 연관성(특히 스트롱 연관성)을 어떻게 효율적으로 찾을 수 있는지, 얼마만큼 많은 연관성 법칙들을 찾을 수 있는지, 혹은 필요한 연관성 법칙이 무엇인지를 알아내는 등이 주요 이슈가 된다.

 

(3) 클래스화(Classification) 혹은 클러스터링(Clustering)


클래스화란 서로 비슷한 특징을 보이는 데이터 혹은 객체들로 분류하는 모델을 찾는 과정인데, 흔히 훈련 데이터(Training Data)로부터 적당한 클래스화를 얻어본 후 실제 데이터에 구해진 클래스에 따른 클래스화 및 클래스에 속한 객체에 대한 특징 예측(Predict)을 해나간다. 클러스터링도 객체를 분류한다는 측면에서는 비슷하지만, 훈련 데이터를 통하거나 사전에 미리 클래스화해서 실제 데이터를 그 클래스화에 적용하는 방식이 아니고, 비슷한 특징을 가진 객체끼리 클러스터간 유사성은 커지면서 동일 클러스터내의 객체간 유사성은 높이도록 분류해 나간다는 것이 그 차이점이다. 흔히 기계학습(Machine Learning)분야에서는 이러한 클래스화와 클러스터링의 차이를 감독학습(Supervised Learning)과 비감독학습(Unsupervised Learning)으로 말하기도 한다.


클래스화 기법은 크게, 의사 결정 트리 추론(Decision Tree Induction)기법,인스턴스 기반(Instance Based) 기법, 베이지안 네트워크(BayesianNetwork)기법, 신경망(Neural-Net) 기반 기법, k-근접 이웃(k-Nearest Neighbor) 기법, 유전자(Genetic) 기법 등으로 분류될 수 있다. 이에 비해 클러스터링 기법은 파티셔닝(Partitioning) 기법, 계층화(Hierarchical) 기법, 밀집-기반(Density-Based) 기법, 그리드-기반(Grid-Based) 기법, 모델-기반 기법 등이 있다.

 

(4) 비쥬얼화(Visualization)


분석된 패턴이 이해할 수 있는 지식이 되기 위해서는 비쥬얼화가 중요하다. 비쥬얼화에는 데이터를 3차원 큐브, 분포 차트 등의 다양한 형태로 보여주는 데이터 비쥬얼화 뿐만 아니라, 데이터마이닝으로 얻어진 연관성 법칙이나 클러스터 등을 플로팅하는 등의 데이터마이닝 결과 비쥬얼화, 데이터마이닝 과정 자체에 대한 비쥬얼화 등이 포함된다.

 

라. 데이터마이닝 시스템

 

현재 상업적으로 개발된 데이터마이닝 시스템 중 몇 가지로서는, IBM사의 Intelligent Miner, SAS Institute 사의 Enterprise Miner,Silicon Graphic 사에서 개발한 MineSet, Oracle사의 Data Mining Suite 등을 들 수 있겠다.

 

마. 향후 전망

 

현재까지 데이터마이닝 연구 및 개발은 주로 수평적 시스템을 구성하기 위한 기본 연구에 치중하였으며, 그 응용 영역도 확대해 왔다. 앞으로의 연구는 특정 응용 분야에 한정한 수직적(Vertical) 데이터마이닝으로 그 활용 영역을 넓혀갈 것으로 보인다. 예를 들어 웹마이닝(Web Mining), 바이오정보학 마이닝(Bioinformatics Mining)은 좋은 예라 할 수 있다. 또 수직적 데이터마이닝 못지 않게 더 인텔리전트하고, 효율적이고, 또 대용량 데이터베이스에서도 적용 가능한(Scalable) 데이터마이닝 시스템을 만드려는 연구 개발도 당분간 지속되리라 본다. 관련분야의 세계적인 학술대회인 ACM SIGKDD International Conference on Knowledge Discovery and Data Mining이나, 데이터베이스전반을 다루는 ACM SIGMOD International Conference on Management of Data, 그리고 International Conference on Very Large Data Bases 등에서의 데이터웨어하우스나 데이터마이닝의 2001, 2002년도 최근 연구는 이를 반영한다 할 수 있다.


데이터웨어하우스와 데이터마이닝은 그 수요에 있어서는 별개의 제품으로서가 아닌, 데이터마트와 같은 전자상거래 시스템(e-Commerce), 고객관리시스템(CRM, Customer Relationship Management), 공급사슬관리(SCM, Supply Chain Management), 기업애플리케이션통합(EAI, Enterprise Application Integration), 비즈니스 인텔리전스(Business Intelligence)등의 비즈니스 시스템 통합형태로 시장을 형성해 왔으며, 앞으로도 그러한 수요가 지속되리라 예견된다

 

 

1. Datamining 개요

기업간의 경쟁이 심화되고 정보의 중요성에 대한 인식이 확산됨에 따라 대량의 데이터에서 유용한 정보를 캐내는 ‘데이터마이닝(Data Mining)’이 주목 받고 있다. 이미 외국에서는 다양한 연구와 프로젝트가 추진되어 그 결과물들이 속속 발표되고 있고, 최근 국내에서도 이에 대한 연구가 진행되고 있다. 하지만, 국내의 경우 데이터마이닝의 전단계라 할 수 있는 데이터 웨어하우스 구축작업이 일부 진행되고 있거나, 구축이 완료된 상태에서 데이터마이닝으로의 전환을 꾀하고 있는 단계라 할 수 있다.

21세기 기업경영에서 데이터베이스마케팅이나 고객관리(CRM: Customer Relationship Management), 위험관리(Risk Management)등의 중요성이 크게 부각되기 시작하면서 다양한 분야에서 데이터마이닝 작업이 이루어질 전망이다.

2. Datamining 정의

데이터마이닝이란 자동화되고 지능을 갖춘(automated and intelligent) 데이터베이스 분석기법으로 90년대 초반부터 지식발견(KDD: Knowledge Discovery in Databases), 정보발견(information discovery), 정보수확(information harvesting) 등의 이름으로도 소개되어 왔는데 일반적으로 “대량의 데이터로부터 새롭고 의미있는 정보를 추출하여 의사결정에 활용하는 작업”이라 정의된다. 용어에 ‘채굴하다’라는 의미는 ‘mining’을 포함시킨 이유는 데이터로부터 정보를 찾아내는 작업이 마치 금이나 다이아몬드를 발견하기 전에 수 많은 양의 흙과 잡석들을 파헤치고 제거하는 것과 유사하다는 데에 기인한다.

3. 작업유형

데이터마이닝 작업 유형은 데이터를 분석하여 어떤 종류의 정보를 찾고자 하는가에 따라 구분된다. 데이터마이닝을 통해 도출되는 정보의 종류는 다양하나 대표적인 종류는 다음과 같다.

3.1 연관(Association)규칙
“어떤 상품들이 함께 잘 팔리냐?”

“A제품을 구입한 고객에게 어떤 제품을 함께 팔 수 있을까?”

“카드사가 유형간에는 어떤 관계가 있나?”

한 항목을 알 경우 다른 항목을 예측할 수 있다면, 이들의 관계는 종속관계가 존재한다. 연관규칙을 발견하는 작업이란 데이터 안에 존재하는 항목간의 종속관계를 찾아내는 작업이며, 마케팅에서는 손님의 장바구니에 들어있는 품목간의 관계를 알아본다는 의미에서 장바구니 분석(market basket analysis)이라고 한다.

연관규칙은 ‘항목A’ & ‘항목B’ => “항목C”의 형태로 표현되는데, 이는 ‘항목A와 항목B를 포함한 거래는 항목C도 포함한다.’로 해석한다. 그러나 이러한 연관 규칙들은 실제 데이터를 분석할 때에는 100% 신뢰도를 가지는 경우가 거의 드물기 때문에 통상적으로 확률이나 도표등을 이용하여 정량화한다.

일반적으로 연관규칙은 제품이나 서비스의 교차판매(cross selling), 매장진열(display), 첨부우편(attached mailings), 사기적발(fraud detection)등의 다양한 분야에 활용된다

3.2 연속(Sequence)규칙
연속규칙이란 연관규칙에 시간관련 정보가 포함된 형태이다. 예를 들어 “새 냉장고를 구입한 고객중 한달 이내에 새 오븐을 구입하는 경향이 많다” 와 같이 시간성에 순차적으로 나타나는 사건이나 거래의 종속관계를 의미한다.

즉 연속규칙에는 시간의 흐름이 있기 때문에 연관규칙에 비해 더 구체적이며, 목표(target)마케팅이나 일대일(one-to-one)마케팅에 바로 활용할 수 있다. 그러나 연속규칙을 찾기 위해서는 데이터에 거래일이나 거래품목 이외에도 고객의 구매 이력(history) 속성이 반드시 필요하다는 조건이 만족되어야 한다.

3.3 분류(Classification)규칙
분류는 데이터마이닝에서 가장 많이 사용되는 작업으로 부류값이 포함된 과거의 데이터로부터 부류별 특성을 찾아내어 분류모형을 만들고, 이를 토대로 새로운 레코드의 부류값을 예측하는 것을 의미한다.

예를들어 신용카드 회사의 고객 신용평가 모형이 있다 하자. 이 회사에서는 지금까지의 거래를 토대로 고객들의 신용을 <우수,보통,불량>으로 분류했다. ‘불량’평가를 받은 고객층의 특성중 하나가 “25~30세 가량의 미혼남으로 월 평균 수입이 200만원 이하인 고객”이라면, 신규 카드 가입자들의 신용평가시 이러한 규칙을 활용함으로써 보다 객관적인 의사결정을 유도할 수 있다.

3.4 데이터군집화(Clustering)
군집화란 레코드들을 유사한 특성을 지닌 몇 개의 소그룹으로 분할하는 작업을 뜻한다. 작업의 특성이 분류작업과 흡사하다고 생각할 수 있으나, 분석하고자 하는 데이터에 부류가 포함되어 있지 않다는 점에서 차이가 있으며, 다른 데이터마이닝 작업을 위한 선행작업으로서의 역할을 수행하는 경우가 많다.

예를들어 어떤 백화점에서 고객을 효율적으로 관리하기 위해 고객들을 몇 개의 부류로 구분하려 한다고 가정해 보자. 이 백화점에서는 지금까지 고객의 최근 구매경력, 구매빈도, 구매액 등을 기준으로 고객을 VIP고객, 우수고객, 일반고객으로 분류하여 관리하였다. 그러나 이벤트나 프로모션 대상을 선정하는데 있어 현재의 고객부류는 너무나 추상적이고 고객의 개인별 특성을 전혀 고려하지 못하고 있어 활용도가 그다지 높지 않다. 고객의 구매이력 뿐만 아니라 인류통계학적 데이터, 라이프스타일 데이터, 그리고 지불유형 등의 다양한 데이터에 군집화 기법을 이용하여 몇개의 군집을 나눌 수 있다. 그 군집중 다음과 같은 군집이 있다고 하자.

- 소득이 200만원 이상이고, 자녀가 없으며, 연령이 30대.

- 교육수준이 높으며, 자녀는 모두 출가했고, 연평균 구매액이 200~300만원 정도

이 같은 군집의 고객들의 특성을 파악할 수 있다면, 적어도 이 군집에 속한 고객들에게 어린이 의류나 장난감 카달로그를 발송하는 우는 피할 수 있다

 

 

1. 개요
OLAP은 On-Line Analytical Processing의 약자로써 의미를 풀어 쓰면 온라인상에서 데이터를 분석 처리하는 것을 말한다. 즉, 결과적으로 최종사용자가 다차원 정보에 직접 접근하여 대화식으로 정보를 분석하고 의사결정에 활용하는 과정이다.

1.1 특 징
1) 분석을 위해 활용되는 정보의 형태가 다차원적(Multi-Dimensional) 이다. 다차원 정보는 사용자들에 의해 이해되는 기업의 실제 차원(기간, 제품, 부서, 지역 등)을 반영한다. 정보의 다차원성은 OLAP을 다른 시스템과 구분하는 가장 중요한 개념이다.

2) 최종 사용자는 중간 매개자(정보처리 담당자)나 매개체(인쇄된 보고서)없이 온라인 상에서 직접 데이터에 접근한다.

3) 최종 사용자는 대화식(Interactive)으로 정보를 분석한다. 시스템은 사용자의 사고 흐름이 중간에 끊이지 않도록 신속하게 질의 결과를 제시 할 수 있어야 한다.

4) OLTP(On-Line Transaction Processing)은 매일매일의 기업 운영을 가능하게 하는 반면, OLAP은 기업이 나가야 할 방향을 설정 할 수 있게 한다.

1.2 특 성
1) 대규모 데이터 접근
2) 요소들간의 다양한 관계 룰 분석
3) 통합된 정보
4) 다양한 계층의 시계열 정보
5) 다양한 관점에서 표현된 정보
6) 사용자 질의에 빠르게 응답

1.3 목 적
OLAP의 목적은 최종 사용자가 기업의 전반적인 상황을 이해 할 수 있게 하고 의사결정을 지원하는데 있다.


2. OLAP의 주요 기능
2.1. Drill Down / Drill Up
가장 요약된 레벨로부터 가장 상세한 레벨까지 차원의 계층에 따라 분석에 필요한 요약 수준을 바꿀 수 있는 기능.
이 기능을 활용 함으로써 분석가는 분석계층의 깊이를 마음대로 바꿔 가며 심도있는 분석을 할 수 있다.
예) 지역별 : 전국 - 시/도별 - 구/군별 - 읍/면/동별
            ← Drill Up             Drill Down →

2.2. Pivot(=Rotate)
사용자에게 최종적으로 보여지는 결과 화면을 리포트라고 할 때 리포트에 보여지는 축(차원:Dimension)을 서로 바꾸는 기능.
이 기능을 활용 함으로써 분석가는 고정된 포맷에 구애받지 않고 분석의 패턴을 바꿀 수 있다.

2.3. Slice
다차원 배열에서 한 차원의 멤버나 그 이상의 멤버를 가지고 한 값을 선택했을때 나타나는 그 부분 집합(데이터 단편화).

2.4. Dice
사용자가 Slice의 특정한 항목에 대해 Rotation이나 Drill Down/Up 등을 이용하여 대화식으로 화면을 디스플레이 해가며 분석하는 프로세스.
분석가가 원하는 방향에 따라 분석차원 또는 분석 관점을 바꾸어 가면서 분석 할 수 있어 정형화된 보고서 뿐만 아니라 정형적인 질문에 의한 보고서도 작성가능 하므로 유연한 업무 분석이 가능하게 한다.

2.5. Data Surfing
실행 중에 간단히 리포트의 형태와 조건을 바꾸는 것으로 마우스를 이용하여 새로운 장표나 조건을 리포트 위로 끌어서 놓으면 (Drag&Drop) 그 새로운 장표나 조건에 의해 리포트가 다시 실행 된다.
이 기능을 이용하게 되면 현재 리포트에 보여지고 있는 정보를 간단한 대화식 조작을 통하여 어떠한 형태의 리포트도 나타낼 수 있게 해준다.

 

3. OLAP의 종류
3.1. MOLAP(Multidimemsional On-Line Analytical Processing)
다차원 데이터베이스(MDB)를 기반으로 다차원적인 분석을 하도록 만들어진 OLAP 구현방식으로 다양하고 신속한 분석을 위해 특수하게 만들어진 Solution이다.

장 점  
1.다차원 데이터의 저장과프로세싱에 동일한 엔진용으로 네트워크상의 데이터 이동을 최소환 한다.
2. 사용자 질의에 신속 대응한다.[다차원 배열 형태의 데이터구조 사용]

단 점

 1. 원시 데이터를 볼 수 없고 대용량 데이터 취급에 역부족.
 2. 데이터 로딩 시간이 길다.   [데이터 마트에 적합]
 3. RDB에 비해 Error회복 능력과 하드웨어 활용이 뒤짐.

3.2. ROLAP (Relational On-Line Analytical Processing)
관계형 데이터베이스(RDB)를 기반으로 다차원 데이터 모델링을 통하여 다차원 분석이 가능하도록 하는 방식이다.

장 점

1. 원시 데이터 취급과 대용량 데이터 처리에 적합하다.
2. 확장성 있는 데이터 구조와 유동적 질의가 가능하다.

단 점
1. 다차원 모델링을 위한 스키마 필요.
 
3.3. HOLAP (Hybrid On-Line Analytical Processing)
ROLAP과 MOLAP을 절충하여 RDB와 MDB를 같이 쓸 수 있도록 하는 방식으로 요약된 데이터나 관계식에 의해 새로 계산된 데이터는 다차원 데이터베이스에 저장되며 상세 데이터는 관계형 데이터베이스에 저장된다.

장 점

1. MOLAP 의 단점을 보완 하였다.
[다차원 데이터의 저장공간으로 다차원 데이터베이스와 관계형 데이터베이스가 함께 사용]

 단 점
1. 시간과 많은 기술이 필요한 다차원 모델링 필요.

3.4. DOLAP (Desktop On-Line Analytical Processing)
다차원 데이터의 저장 및 프로세싱이 모두 클라이언트에서 이루어지며 분석에 필요한 데이터는 데이터베이스에서 추출되어 클라이언트에 특수한 파일 형태로 저장된다.

장 점

1. 비교적 설치와 관리가 용이하다.
2. 유지보수 부담이 적다.
3. 적은 비용으로 구축 할 수 있다.

단 점
1. 필요한 데이터가 모두 클라이언트로이동하기 때문에대용량의 데이터를 처리하는데 한계가 있다.
2. 데이터의 일관성 유지에 문제가 있다.

3.5. Web OLAP
Web OLAP 이란 말은 ROLAP 과 MOLAP 의 평행선상의 개념이 아니라 과거 클라이언트/서버에서 뿐만 아니라 웹에서 구현하기 위한 방식으로 ROLAP, MOLAP에도 모두 다 존재하며 인트라넷/인터넷과 데이터 웨어하우스를 연동 시킴으로써 전국적, 국제적으로 분산된 많은 사용자들 까지 도 지원 할 수 있다.

 

장 점

1. 웹브라우저의 사용으로 비용을 절감 할 수 있고 교육 및 지원이 쉽다.
2. 인터넷 기반으로 모든 사용자가 지리적 제한 없이 빠르고 쉽게 접근이 가능하다.
3. 버전 컨트롤이 필요없고 시스템 유지보수가 쉽다.
4. 플랫폼 간의 호환성(동일한 인터페이스 사용)

 단 점
1. 웹버전이 현재는 고급기능 지원 측면 다소 부족
2. 웹의 인터페이스 방식과 보안에 문제점이 있다

 

 

[ 관련용어설명 ]

Data Mart

      한두개의 특별한 영역에 중점을 두어 만든 데이타 웨어하우스의 일부라고 할수 있다.

      일반적으로 데이타 마트는 데이타 웨어하우스로부터 추출되어 특별한 사용자 입맛에

      맛도록 역정규화되고 인덱싱된다.

            

Data Minig 

    대량 데이타군 내에서 경향과 패턴을 발견해내는 기법(데이터 항목들간의 관계를 발

    견하기 위해 통계적인 기술을 사용하는 기법)을 말한다. 또한 예측모델들의 구축도 이

    데이터 마이닝을 바탕으로 한다. 이기법은 예외적인 구성들을 찾기위해 사용하는 OLAP

     와는 다른것이다.

    참조: Data Visualization

 

Data Model 

     데이타베이스내의 데이타 구성도를 말한다. 데이타 모델은 테이블, 컬럼, 주요 키 및

     이들 테이블간의 관계등을 표현하고 있다.

 

Data Visualization 

       시각적으로 경향과 패턴을 보기 추출하기 위하여 고용량의 인간 두뇌를 이용하여 데이

       타를 정보로 변환하는 기술을 일컫는다.

 

Data Warehouse 

      정보 검색을 목적으로 구축된 데이타베이스이다. 데이타 웨어하우스는 복수의 거래

       시스템으로부터 데이타를 수집한다. 이들 데이타는 데이타 검색, 요약및 분석등을

       지원하기 위하여 정제되고 재구조화 된다.

 

DBMS

    DataBase Management System. 체계적인 방법으로 데이터를 저장하고 가공하고, 다루

   는데 사용됨. 관계형, 다차원적, 네트웍, 계층형을 포함하여 다양한 저장방법을 사용할 수

    있다.

RDBMS :

     Relational DataBase Management System. 관계형 데이터베이스에서 데이터를

     저장하고 활용하며 관리하기 위한 시스템. 프로세스 처리와 데이터웨어하우스를 위해

     사용되어 진다.

                    

Decision Support 

    구매, 인사, 경영, 생산등을 위하여 의사결정자가 필요한 정보를 제공할 목적으로

     구축된다.

 

Decision Support System(DSS) : 의사결정지원시스템

     데이타베이스, 웨어하우스 또는 마트등을 포함하여 의사결정을 위하여 지원되는 보고

    및 분석 시스템이다.

            

ERP : Enterprise Resource Planning. 전사적자원관리

Meta Data 

    데이타에 대한 데이타라고 할 수 있다. 어떤 정보가 어디에 저장되어 있는지, 어떻게

    암호화 되어 있는지, 다른 정보와는 어떤 관계가 있는지, 그 데이타는 어디에서 발생

    되었는지 그리고 이 데이타가 업무활동과 어떤 연관이 있는지에 대한 정보이다. 요는

    다양한 업체로부터 구입하여 사용하는 제품들을 위하여 어떻게 표준화된 메타 데이타

    를 구축하는가하는 것이다.

             (참고 : Meta Data의 집합 = Data Dictionary)

 

Middleware 

    데이타 또는 미리 요약한 데이타등을 이동하기 위하여 두 시스템을 연결하는데 사용

     되는 하드웨어 또는 소프트웨어를 말한다.

 

Multidimensional Database(MDB) 

     다차원 데이타를 지원하도록 최적화된 DBMS를 말한다. RDBMS 기능을 지원하면서

    폭넓은 데이타 검색을 지원하는 시스템이 바람직하다. 여러 시야로 잘라보아야 할 필요가

     있는 사용자에게 적합하다.

 

Object Oriented Analysis(OOA) 

     문제 영역에서 엔티티 유형을 정의하고, 이러한 유형간의 "is-a" 관계를 추출하며,

     클래스간의 "has-a"관계를 정의하여 문제를 추상화 시키는 분석방법이다.

 

Object Oriented Design(ODD) 

      OOA를 이용하여 재사용성과 연결관계를 명확히 할수 있는 설계 방법론이다.

 

OnLine Analytical Processing(OLAP) 

      주문정보같이 다차원 데이타를 실시간 검색과 분석하는 데이타 웨어하우스에서 일반적

       으로 사용된다.

 DOLAP :

       Desktop OLAP 또는 Database OLAP을 뜻한다. 저렴한 가격의, 지역적 다차원 분

       석과 데이터 다운로드의 프리젠테이션을 관계형 또는 다차원 데이터베이스로부

       터 클라이언트에 행하는 OLAP tool을 말한다.

HOLAP :

        Hybrid OLAP. 다차원 데이터베이스나 RDBMS에 저장되어 있는 데이터를 동시적

        으로 다차원 분석을 제공할 수 있는 tool을 말한다.       

 MOLAP : Multidimensional [Database] OLAP.

 ROLAP : Relational On-Line Analytic Processing

        특별한 다차원 데이타베이스보다는 관계형 데이타베이스를 이용한 OLAP을 말한다.

                    

Snowflake Schema

             정규화된 차원 테이블을 갖고 있는 스키마로 스타 스키마의 변형

            

Star Schema 

       데이타 웨어하우스의 요약 테이블을 설계하는 표준 기술이다. "Fact" 테이블들은

       독립적인 여러개의 "dimension" 테이블들과 join한다. 성능을 위하여 테이블들이

       부분적으로 역정규화 되기도 하지만 대부분의 테이블들은 join이 필요하게  된다.

 

[ OLAP 이해 ]

정의 
OLAP이라는 용어는 온라인 거래프로세싱(OLTP)에 상대되는 개념으로 주로 이야기
되고 있으며,
오늘날 데이터웨어하우스 환경에서 데이타 접근 전략의 중요한 요소로
자리잡아 가고있다.
 OLAP은 최종 사용자가 다차원 정보에 직접 접근하여 대화식으로
정보를 분석하고 의사결정에
활용하는 과정으로 정의 할 수 있다.        
특성 
다차원성 : 사용자들이 실질적인 차원에서 정보를 분석하도록 한다.
직접접근 : 사용자가 전산 부서와 같은 정보 매개자를 거치지 않고 자신이 원하는
정보에
직접 접근한다.
대화식 분석 : 사용자는 시스템과의 상호작용을 통해 정보를 분석하며 원하는 결과를
얻을 때까지 계속해서 분석을 수행한다. (Drilling)
의사결정에 활용 : 사용자가 기업의 전반적인 상황을 이해할 수 있게 하고 의사결정을
지원한다.
OLTP와 OLAP의 차이점 
OLTP : 은행의 창구업무나 항공사의 예약 업무등이 이 예이다. 이 시스템은 원시 데이터
가 실제로 발생하고 기록되는 시스템으로 무엇(what)에 초점을 맞추고 있다.
이 시스템의 일차적인 목표는 현재 거래 상태를 정확하게 기록하고 갱신할 수
있도록 하는 것이다.OLTP가 일상적인 기업의 운영을 지원하는 반면 OLAP는
기업의 방향을 설정하는 역할을 한다

        OLTP시스템과 의사결정지원시스템의 차이 :
        OLTP시스템은 짧은 시간에 끝나는 간단한 트랜잭션들이 대략으로 발생한다.
일반적으로
이 시스템업무는 많은 사용자들이 동시에 데이터베이스에 접근하여
몇 개의 레코드를
읽거나 갱신하므로, 단위 시간에 처리되는 트랜잭션의 수와
응답시간이 매우 중요하다.
         의사결졍지원시스템은 OLTP에 비해 동시에 데이터베이스에 접근하는 사용자 
수가 적은
반면, 사용자는 다양한 관점에서 데이터를 분석하기를 원한다.
따라서 질의내용이 복잡
하고 대화식으로 수행되며, 시스템은 사용자질의에
응답하기 위해 한번에 매우 많은 양
의 데이터를 처리해야 한다.이 두 시스템의
차이로 인해 의사결정시스템은 OLTP와 분리
되어 구축되어야 했다. 따라서
기업들은 OLTP로부터 필요한 데이터를 추출하고 수정,
요약해서 의사결정을
지원할 수 있는 새로운 데이터베이스를 구축하였다. DSS는 각 부서
별로 산발적
으로 구축되어 통합적이지 못하고 다양한 시스템 상에 산재되어 존재하게 되
      어 활용을 거의 하지 않았다.
 OLAP : OLAP는 사용자가 다양한 각도에서 직접 대화식으로 정보를 분석하는 
과정을 말한다. 수
집된 데이터를 의사결정에 활용하는 측면을 담당하며
왜(why)에 초점이 맞추어진다.
데이터웨어하우스       
정의 : 사용자의 의사결정을 지원하기 위해 기업이 축적한 많은 데이터(Time Variant)
를 사용자
관점에서 주제별로(Subject-Oriented)통합하여 별도의 장소에 저장해
놓은 데이타 베이스 이다.
 장점 : 첫째, 운영시스템을 보호하고 사용자 질의에 신속한 응답성능을 제공할 수 있다.
        둘째, 여러 시스템에 산재된 데이터들이 웨어하우스로 취합되고 통합되므로
사용자는 자신들이 필요로 하는 데이터가 어디에 있는지 신경쓰지 않고 필요한
데이터를 쉽게 가져다 쓸 수 있다.
        셋째, 데이터는 웨어하우스로 옮겨오기 전에 정제 및 검증과정을 거치게 되며,
따라서 사
용자는 양질의 데이터를 사용할 수 있다.
 
데이터마트              
 정의 : 이해관계가 동일한 사용자 집단에 특화된 사용자 중심의 데이터저장고로서,
동질적인 사용자 집단에게 유사한 비즈니스 모델과 비즈니스 언어를 제공함으
로써 데이터에 대한 가 높이는데 초점을 맞춘다.
 웨어하우스와 사용자사이에 데이터마트가 존재해야 하는 이유 :
        첫째, 웨어하우스는 최종사용자와의 인터페이스보다는 방대한 분량의 데이터를
효율적으
로 통합하고 관리하는 측면에 보다 초점을 맞춘다. 따라서 사용자
측면에서 편리
한 형태로 설계되지 않을 수 있다.
         둘째, 웨어하우스는 전사적인 용도로 구축되기 때문에 각 개별부서나 사용자
집단에 적합
한 형태로 데이터가 저장되지 않는다. 따라서 사용자 질의에
최적의 성능을 제공하
지 못할 수 있다.
         셋째, 대부분의 사용자들은 웨어하우스의 전체 데이터중 일부분만을 주로
사용할 것이다.
  기업의 모든 사용자들이 웨어하우스에 대해 직접
질의를 수행하는 것은 많은 시스
템자원을 필요로 하며 전체 시스템 성능에
심각한 부하를 줄수 있다.
데이터마트와 웨어하우스가 함께 사용될 경우 좋은 점
    첫째, 데이터마트로 옮겨진 데이터를 그 부서나 사용자집단의 필요에 맞게
자유롭게 가공
되고 부서별 필요에 의해 적절한 수준에서 과거의 상세데이터가
유지될 수 있으며
 전사적 웨어하우스와는 다르게 구조화되고 인덱싱됨으로써
사용자 질의에 대해 최적의 응답성능을 제공할 수 있다.
  둘째, 각 부서는 다른 부서에 영향을 주지 않고 필요한 시점에서 원하는
어떠한 프로세싱
이라도 수행할 수 있다.
   셋째, 각 부서는 자신의 needs에 적합한 소프트웨어를 선택할 수 있다.

[ 데이터웨어하우징이란 ? ]

정의 
      데이터웨어하우스를 구축하고 활용하는 일련의 과정으로, 전사적인 아키텍쳐상
      에서 의사결정을 지원하기 위한 환경을 구축하자는 사상이다.     
데이타웨어하우스
  데이터웨어하우스는 사용자의 의사결정을 지원하기 위해 기업이 축적한 많은 데이터를

사용자 관점에서 주제별로 통합하여 운영시스템과 사용자 사이의 별도의 장소에 저장해
놓은 데이타베이스로 이해할 수 있다. 의사결정을 지원하기 위해 별도의 통합된 저장공간을
구축함으로
첫째, 운영시스템을 보호하고 사용자 질의에 신속한 응답성능을 제공할 수 있다.
둘째, 여러 시스템에 산재된 데이터들이 웨어하우스로 취합되고 통합되므로 사용자는
자신들의 필요로 하는 데이터가 어디에 있는지 신경쓰지 않고 필요한 데이터를
쉽게 가져다 쓸 수 있다.
셋째, 데이터는 웨어하우스로 옮겨오기 전에 정제 및 검증과정을 거치게 되며, 따라서
사용자는 양질의 데이터를 사용할 수 있다. 데이터웨어하우스의 목적은 데이터에
기반한 의사결정이 막연한 감이나 불완전한 데이터에 의존하는 대신 통합된 데이터를
바탕으로 사실에 근거하여 이루어질 수 있도록 한다.
       
데이타 추출 및 가공
      웨어하우스에 데이터를 로딩하는 단계는 데이터웨어하우스구축에 있어 가장 중요한 
단계중의 하나이다. 운영시스템의 데이터는 단순히 추출되어 복제되는 것이 아니라
전사적모델에 기초하여 통합된다. 이 계에서 정제및 변형과정을 필요로 한다.
중복된 데이터는 제거되고 잘못된 값은 수정되며 다양한 포맷의 데이터가 하나의 포맷으로
통일된다. 필요한 경우 데이터는 집계되고 연산과정을 거쳐 변형된다. 이러한 추출 및
변형과정에서 소스와 타겟사이의 대응관계설정,변환규칙, 추출주기 등과 같은 부가적인
데이터가 발생하는데 이러한 데이터를 메타데이터라 한다. 이러한 메타 데이터는
메타데이터리파지토리를 통해 중앙집중식으로 관
리된다.
         
데이터웨어하우징과 OLAP시스템
초기 데이터웨어하우징의 초점이 의사결정을 지원할 수 있는 정보기반의 구축에 있었던 반면,
OLAP은 정보의 효과적인 활용 측면에 보다 초점을 맞추었다. 이는 초기 데이터웨어하우징이
전사적 의사결정 지원환경의 전 단계인 데이터 통합과 관리, 인프라 구축의 측면을 강조한
반면, OLAP은 데이터접근과 활용, 애플리케이션 구축측면을 강조하였다. 이처럼 초기 데이터
웨어하우징은 '어떻게 데이터웨어하우스를 구축할 것인가'라는 측면에 초점을 맞추어 왔다.
그러나 점차 데이터웨어하우스를 구축하고 사용하게 되면서, 기업들은 자신들의 재량에
맡겨진  방대한 정보의 가치를 인식하게 되었고, 이에 따라 데이터웨어하우징의 초점은
구축에서 활용으로, 즉 '어떻게 데이터웨어하우스를 활용할 것인가'라는 측면으로 옮겨지게
되었다. 데이터웨어하우징이 구축단계에서 활용단계로 급속하게 발전함에 따라 OLAP은
데이터웨어하우징 환경으로 급격히 통합되었다.

 

[다차원 모델]

용어설명
다차원모델      = 큐브(Cube)
차원(Dimension) = 큐브를 구성하는 축(Axis)
                 사용자의 관점에서 다른 항목과 독립적인 일련의 모든 항목들의 집합
차원 항목(Member or Element)
                = 각 축의 좌표에 해당하는 것
변수차원   = 분석의 대상이 되는 차원
유형차원   = 실적과 목표의 관점항목을 가지는 차원
(Cell)     = 각 차원을 구성하는 항목들의 조합에 의해 만들어지는 공간으로 데이터가 저장
                  되는 공간이다.
                  셀은 큐브를 구성하는 차원들이 가진 항목들의 조합수만큼 존재한다.
레벨         = 계층구조상의 거리나 위치를 나타냄. 계층구조의 리프항목으로부터 동일한
거리
를 갖는 항목들의 집합을 나타냄. Descendent의 최대치가 동일할 경우 동일한|
                  레벨에 속한다고 말함.
Generation = 루트항목에서 시작하여 리프항목방향으로 항목이 속하는 계층의 위치를 계산,
                  동일한 Generation은 동일한 수의 ancestor를 가질 경우임
Attribute(or Property)
               = 하나의 차원에 대해 차원을 구성하는 항목들의 특성을 나타내는 정보로 텍스트형
                  태의 데이터를 일반적으로 가짐.
관계식       = 항목들사이에 설정되는 관계, 새로운 항목이 만들어지기도 함.
스타스키마 = 다차원 데이터를 표현하기 위한 관계형 데이터베이스 설계기법이다.
                  다차원모델은 사실(Fact)테이블과 차원(Dimension)테이블로 구성된다. 정보를
                  사실과 차원으로 분류한다. 사실은 실제 데이터요소로 분석을 요하는 변수차원의
                  항목들을 말한다. 차원은 사실을 보는 관점을 나타내며 각각의 차원은 별도의 차
                  원테이블에 표현된다. 스타스키마는 조인의 횟수를 줄임으로써 사용자질의에 빠
                  른 속도를 응답할 수 있는 장점을 가진다.
사실테이블의 기본키
                = 외래키의 조합인데 이러한 키를 Composite Key라 한다. 모든 사실테이블은
                   Composite Key를 기본키로 가진다.
멀티스타스키마  = 사실테이블의 기본키와 외래키가 동일하지 않은 스타스키마
매트릭스 스키마 = 모든 정보들이 함께 저장되어 있어 검색시 엄청난 컴퓨팅자원을 소모하게 된다.
스노우플레이크 스키마
                = 스타스키마의 사실테이블 구조와 동일하게 유지하면서 차원테이블이 정규화된
                  구조를 말한다. 사실테이블과 직접 조인되는 차원테이블이 있으며, 이 차원테이
                  블은 또 다른 차원 테이블 상의 기본키를 참조하는 외래키를 가진다. 이렇게 참
                  조되는 테이블을 아웃트리거(Outtrigger) 테이블 혹은 아웃보드(Outboard) 테이
                  블이라 한다. 차원테이블이 정규화됨으로써 차원테이블의 크기가 상당히 줄어들
                  게 되며 각 애트리뷰트가 한 장소에서 유지됨에 따라 데이터 무결성이 높은 수
                  준에서 유지될 수 있다. 데이터를 저장하는데 필요한 저장공간을 최소화하고 애
                  플리케이션의 유연성을 증가시킨다. 그러나 많은 차원테이블로 인해 많은 조인이
                 필요하여 응답성능의 저하를 가져올 수 있다.
 
차원들은 계층구조를 가지는데 계층구조상에서 항목들간의 관계
parent - child 관계
Sibling(어떤 항목의 씨블링-그 항목과 동일한 parent를 가진 항목)
Root항목(Parent가 없는 항목)
leaf항목(child를 갖지 않는 항목, or Detail항목)
Ancestor(계층구조의 루트항목까지 연결되는 가지에서 그항목의 상위에 나타나는 모든항목)
Descendent(계층구조의 리프항목까지 연결되는 가지에서 그항목의 하위에나타나는 모든항목) 
정규화와 비정규화
테이블내의 저장공간의 절약차원에서 중복의 데이터를 허용하지 않았던(정규화) 기존의
시스템(OLTP)과는 달리 OLAP시스템에서는 효율적인 갱신이나 저장보다는 데이터의
효과적 활용을 위해 구축되어지는 시스템이기 때문에 중복데이터를 가지는 차원테이블
(비정규화된 데이터구조-데이터중복허용-를 가짐)을 허용하여 조인의 횟수를 최소한으로
줄임으로써 시간을 절약한다.
 * 정규화
E-R모델링은 모델의 유연성을 높이고 데이터의 중복성을 제거하기 위해 정규화과정을
필요로 한다. 정규화된 데이터베이스는 불필요한 데이터의 중복을 제거하여 데이터베이스상의
저장공간을 줄인다.
또 각 앤터티와 애트리뷰트는 오직 한번씩만 표현되므로, 데이터 무결성을 유지하기가
쉽다는 장점을 가진다. 그러나 OLAP시스템에서는 정규화는 큰결함을 발생시킨다.
 첫째, 많은 조인을 필요로 하게되어 디스크를 보다 많이 액세스하게 되며 많은 시스템자원을
       필요로 한다.
둘째, 조인경로를 어떻게 하느냐에 따라 다른 결과를 얻을 수 있다.
 셋째, 정규화된 데이터베이스는 요약데이터를 저장하지 않으며, 연산된 필드를 갖지 않는다.
       요약데이터를 계산하는 작업은 대량의 레코드처리를 수반하게 되며, 이는 많은 CPU자
       원과 I/O를 소비하게 된다.
 따라서 이와 같은 정규화된 ER모델은 질의응답 성능이 무엇보다 중요한 OLAP환경에서는 부적절하다.
   * 비정규화
비정규화는 질의처리시 많은 시간과 자원을 소비하는 조인횟수를 줄이기 위해 테이블상에
반복적으로 데이터를 저장하는 데이터베이스 설계기법이다. 즉 비정규화란 필요한 정보를
모두 한 장소(테이블)에 모아두자는 개념으로 성능을 향상시키기 위해 정규화 규칙을 고의적으로
어기는 것을 말한다. 생성되는 중복된 데이터는 무결성이 보장된 상태로 유지되어져야 하는데
OLAP시스템에서는 데이터가 실시간으로 갱신되지 않기 때문에 OLTP에서처럼 큰 문제가 되지 않는다.
또 비정규화는 유연성이 떨어지고 새로운 애트리뷰트의 추가나 삭제시 모든 테이블을 재구성해야
한다는 단점을 가진다.  이런 단점에서 불구하고 조인의 횟수를 줄임으로써 사용자 질의에 대한
응답성능을 획기적으로 높일 수 있다는 장점이 있다. 
차원
변수차원 :
첫째, 변수차원은 다른 차원들의 존재기반을 제공해 준다. 변수차원은 비즈니스상에서 우리가
      측정하고자 하는 항목들로 구성된 차원이며, 나머지 차원들은 이러한 항목들을 사용자들
      이 분석하기 위한 하나의 관점을 나타낸다고 할 수 있다. 이러한 이유로 나머지 차원들
     을 변수차원과 구분하여 구분차원(Identifier Dimension) 또는 뷰포인트(Viewpoint)등
      으로 부르기도 한다.
둘째, 변수차원은 나머지 차원들의 상세정도(Granularity)를 결정한다.
변수차원이 없는 다차원 모델은 존재하지 않는다. 변수(사실)가 없다는 것은 그 변수가 |
다만 물리적으로 표현되어지지 않았다는 의미이지 논리적인 의미에서 변수가 없다는 의미가
아니다.  다차원 모델링의 시작은 변수항목들의 설정으로부터 시작된다고 할 수 있다.
 
하이퍼큐브 :
하나의 모델을 하나의 큐브로 표현하기 때문에 각각의 차원들을 구성하는 모든 항목들의 조합
수만큼 셀이 존재하게 된다. 즉 큐브를 구성하는 모든 변수가 동일한 차원을 공유하며, 큐브를
구성하는 모든 셀 역시 동일한 차원을 가진다. 하이퍼큐브 방식은 모델구축이 용이한 반면 큐브내에
의미 없는 셀이 존재할 수 있다는 단점을 가진다.
멀티큐브 : 블록 멀티큐브와 시리즈 멀티큐브
블록 멀티큐브 :
다차원 모델을 구축하는 가장 대표적인 방식이다.
블록 멀티큐브방식의 경우 의미 없는 셀이 생성되지 않기 때문에 보다 효율적으로 큐브를
유지할 수 있다. 반면 모델의 구축시 하이퍼큐브에 비해 보다 세심한 주의를 필요로 한다.
이 방식은 하나의 다차원 질의는 한번에 오직 하나의 큐브에 대해 서만 수행되어질 수 있다.
따라서 여러 개의 큐브에서 데이터를 가져오는 것이 어려울 수 있다.
시리즈 멀티큐브 :
이 방식은 모든 변수항목들을 별개의 큐브로 다룬다. 데이터는 변수에 저장되는 것으로
표현되며, 각각의 변수는 데이터베이스에 정의된 차원들 중에서 필요한 차원들만을 취할 수
있다. 즉 각각의 변수항목에 대해 개별적으로 차원이 설정된다. 이 방식에서 모델의 설계시
변수는 나머지 차원들가 완전히 구분되어 처리된다.
기간차원 :
기간차원을 구성하는 항목들은 다른 차원들과는 달리 연속성과 순차성을 가진다.
또한 불규칙적인 특성을 가진다(한달에 30일, 혹은 31일 한달 공휴일의 수등등).
시계열(Times-series) 데이터 = 일련의 기간에 걸쳐 발생하는 특정 변수의 값들을 말한다.
유형차원 :
실적, 예산, 계획, 추정등과 같은 항목으로 구성된다. 변수나 기간차원에 비해 구성항목의
수도 적으며 항목들 사이의 관계 역시 비교적 단순하다. 항목들 간의 관계는 주로 항목들
간의 차이를 측정하는것이다. 스타스키마에서는 유형차원은 벌개의 차원으로 분리되기 보다는
사실테이블에 '사실'과 함께 표현된다. 그 이유는 유형차원을 구성하는 항목들 간에 많은 연산이
필요하기 때 문에 연산을 수행하기 위해서는 테이블에 컬럼으로 표현되는 것이 SQL문으로
처리하기에 편하기 때문이다.
 
다차원 모델의 구축과정
1.       모델링할 주제영역 설정(예 - 매출, 고객, 재고등)
2.변수차원 구성항목 결정 - 설정된 주제영역에 대해 실제 사용자가 분석하고자 하는 항목들을 정의하는
단계이다. 분석하고자 하는 항목들의 집합을 하나의 차원으로 생각할 수 있는데 이를 변수차원이라 한다.
3.구분차원(Identifier Dimension)의 결정 - 변수차원을 구성하는 항목들을 어떤 관점에서 분석
  할 것인지 결정하는 단계로 이러한 관점은 모델의 나머지 차원을 구성한다. 
4.데이터의 구체성 결정 - 데이터의 상세수준을 정하는 단계이다. 
5.계층구조와 애트리뷰트의 정의 - 각 차원에 대해 분석에 필요한 계층구조와 애트리뷰트를 
설정하는 단계이다.
6.관계식 정의 - 항목들간에 필요한 관계식을 설정한다. 관계식은 대부분 변수차원을 구성하는
항목들에 대해 정의된다.
7.차원수의 결정 - 차원이 증가함에 따라 큐브의 희박성은 급격하게 커지며, 이에 따라 사용자가 
다차원 질의를 수행하는데 예기치 못한 어려움을 가질 수도 있다.차원의 증가는 OLAP시스템의
저장공간과 성능에 큰 영향을 미치기 때문에 분석요구와 시스템 용량 사이에 균형을 맞추어
결정되어야 한다.  대부분의 다차원 모델은 4차원에서 8차원으로 구성된다.

 

[데이터웨어 하우징 프레임워크]

[ 다차원프로세싱 ]

기업에서 데이터가 일차적으로 발생하고 수집되는 곳은 운영시스템이다. 이러한 시스템을 운영시스템 
또는 OLTP시스템이라 한다. OLAP시스템에 필요한 대부분의 데이터는 이러한 운영시스템으로
부터 추출되어, 정제 및 변환과정을 거친 다음 별도의 저장공간으로 이동되어 저장된다.
이러한 별도의 저장공간을 데이터웨어하우스 또는 데이터마트라 부른다.







의사결정을 지원하기 위해 이와 같은 별도의 저장공간을 구축함으로써 기업은 운영시스템을 보호하고
사용자에게 빠른 응답성능을 제공하며, 통합된 양질의 데이터를 사용자가 필요로 할 때 쉽게
액세스할 수 있도록 한다. OLAP데이터가 실제로 저장되는 물리적인 장소로는 관계형
데이터베이스나 다차원 데이터베이스가 사용된다.
 
다차원연산         = 입력된 데이터를 바탕으로 계층구조와 관계식, 애트리뷰트를 참조하여 새로
                     운 데이터를 계산해 내는 과정을 말한다. 다차원 연산은 각각의 항목들을 중
                     심으로 수행된다. 큐브 내의 한 셀은 큐브를 구성하는 각 차원들의 항목이
                     조합되어 표현된다. 이때 각각의 항목들이 각기 다른 룰을 가질 수 있다. 다
                     차원 모델의 경우 어떤 룰을 적용할 것인지에 따라 그 결과가 달라지기 때문
                     에 이런 문제를 해결하기 위한 대표적인 방법이 연산의 순서를 정하는 방식
                     과 각각의 룰에 가중치를 부여하는 방식이다.
연산시점 :
사용자들이 동일한 정보를 반복해서 요청할 것이라고 추측한다면 동일한 사용자 질의에 대해 매번
계산하는 것보다는 한번 계산해서 그 결과를 저장해 놓는 것이 타당성을 가진다.  사전연산을 수행
하는 방법에는
첫째, 필요한 모든 연산을 미리 다 수행하여 그 결과를 저장하는 경우
      (사용자 질의에 최상의 응답성능을 제공하지만 로딩된 데이터 양에 비해 연산된 데이터 양
      이 심각하게 커질 수 있다는 문제점이 있다. 차원의 증가에 따라 연산후의 큐브의 크기가
      증가하는 양상을 나타내고 있는데, 차원의 증가에 따라 데이터베이스의 크기는 지수적인 형
      태로 증가하게 된다. 이와 같은 데이터베이스의 폭발적인 증가를 막기 위해서는 일차적으로
      큐브의 설계시 큐브를 구성하는 차원 수를 최소한으로 유지하고 희박성을 최소화할 필요가
      있다. 즉 의사결정에 특별한 부가가치를 더하지 못하는 차원들은 하나의 차원으로 통합하거
      나 제거할 수 있다. 또 큐브가 설계된 후에는 큐브의 모든 셀을 미리 계산하지 않고, 되도록
      많은 부분을 사용자 질의가 발생하는 시점에서 실시간으로 계산함으로써 크기의 증가를 막을
      수 있다. 일반적으로 연산시 참조하는 셀이 많거나 룰이 매우 복잡하고 상호관련성이 높아
      질의시 계산하기에 많은 시간이 소요되는 부분이나 사용자가 자주 요쳥하는 부분, 그리고 다
      른 연산에서 자주 참조되는 부분을 사전에 미리 계산해 놓는 것이 바람직하다.
둘째, 일부만을 연산하는 경우가 있다. 
물리적인 측면에서 실제로 구축된 스타스키마는 복잡한 경우 수십개에서 수백개의 사실테이블과 차
원테이블을 가질 수 있다. 집계(Aggregation)와 분할(Partitioning)은 스타스키마 설계에서 응답성
능을 향상시키고 유지보수를 용이하게 하기 위해 가장 빈번하게 이용되는 기법이다.
집계 (Aggregation) = 스타스키마에서 사전연산은 대부분 집계작업을 의미하며 집계는 상세수준의
                     데이터를 특정 애트리뷰트에 따라 미리 요약하는 작업을 말한다. 집계작업은
                     데이터베이스에 데이터가 로딩되는 시점에 배치작업의 형태로 서버에서 수행
                     되는 것이 일반적이다.
집계영역설정 : 집계작업이 수행될 애트리뷰트가 가지는 항목들의 개수를 고려한다. 많은 레코드가
요약될 수 있는 애트리뷰트를 중심으로 집계작업을 수행해야 효과적이다.
집계작업의 결과저장 :
첫째, 집계데이터를 저장하기 위해 새로운 사실 테이블을 생성하는 방법인데 이 방법은 관리자가
      새로운 키를 관리해야 하는 부담을 가진다.
둘째, 동일한 사실테이블에 상세 데이터와 집계데이터를 함께 저장하는 방식이다. 차원테이블에
      LEVEL(레벨)필드를 추가하고 원래의 사실테이블에 기본 데이터와 집계 데이터를 함께 저장
      하는 방식을 들 수 있다. 레벨 필드를 사용할 경우 테이블 수를 줄일수 있는 반면 레벨 필
      드를 처리하는데 보다 세심한 주의를 필요로 한다.
집계데이터를 만드는 가장 큰 이유는 질의에 대한 응답속도를 향상시키기 위함이다. 집계데이터
가 만들어지면 응답성능이 비약적으로 향상된다. 하지만 집계데이터를 사용함에 따라 여러가지 추
가적인 부담이 발생한다. 즉 주기적으로 집계데이터를 만들고 어떤 집계데이터가 자주 사용되는지
모니터링하고 자주 사용되지 않는 집계데이터를 폐기해야 한다. 또 집계작업은 많은 CPU자원과 디
스크공간을 요구한다. 따라서 어느 부분을 미리 집계해 놓을 것인지 신중하게 선택할 필요가 있다.
지속적으로 모니터링하지 않으면 잘못된 집계데이터가 유지될 수 있다.
 
분할(Partitioning) = 사실테이블이 매우 큰 경우 분할될 수 있는데 분할은 하나의 커다란 사실테
                     이블을 두 개 이상의 보다 작은 테이블로 쪼개는 과정을 말한다. 
 
분할의 이점 : 데이터를 논리적인 단위로 쪼갬으로써 질의에 응답하기 위해 검색해야 하는 레코드
              개수를 줄이고 응답성능을 향상시킨다. 분할은 데이터의 백업 및 복구, 폐기작업을
              용이하게 하며 병렬처리의 효과를 잘 이용할 수 있다. 또 데이터  로딩과 같은 배
              치작업에 유연성을 제공한다. 
 
분할의 단점 : 사용자 질의가 분할된 다수의 테이블로부터 데이터를 요쳥할 경우 조인이나 유니온
              과 같은 작업이 필요하며, 분할된 테이블을 기술하기 위해 메타데이터가 추가로 요
              구된다. 
 
수평분할    : 하나이상의 비니지스 차원에 따라 행(Row)수준에서 사실테이블을 분할한다. 나누어
              진 사실테이블의 크기가 비슷하게 생성될 수 있을 경우 분할하는 것이 바람직하다. 
수직분할    : 열을 기준으로 사실테이블을 쪼개는 것을 말한다. 이 경우 사실테이블의 기본 키가
              중복되기 때문에 전체적인 저장공간은 더 많이 차지하게 된다. 하지만 수직분할은
              사용자 집단별로 관심 있는 칼럼들이 다르거나 자주 액세스되지 않는 칼럼들이 있
              을 경우 이들 칼럼을 별도의 테이블에 저장함으로써 테이블의 크기를 줄이고, 따라
              서 검색해야 하는 디스크 양이 줄어든다. 
 
다차원질의  : OLAP시스템은 사용자 의사결정을 효과적으로 지원하기 위해 양질의 데이터를 최종
              사용자가 쉽게 접근할 수 있도록 제공한다. 사용자는 주요 비즈니스 항목들을 다양
              한 각도에서 조회하고 자유롭게 비교할 수 있다. 이러한 조회작업을 다차원 질의라
              한다. 다차원질의는 마치 사용자가 큐브의 일부분을 자신이 원하는 형태로 절단하여
              살펴보는 것에 비유할 수 있다. 이러한 이유로 다차원 질의를 슬라이싱과 다이싱
              (Slicing & Dicing)이라고 부른다. 
 
보고서차원  : 큐브를 구성하는 차원 중 변수차원은 보고서의 행을, 기간차원은 보고서의 열을 이
              루고 있으며 제품차원은 보고서의 데이터를 결정하고 있다. 이처럼 다차원 데이터를
              2 차원 보고서로 표현하기 위해서는 열, 행, 페이지의 3가지 차원개념이 필요하다.
              열차원과 행차원은 보고서의 축을 구성하며, 따라서 열차원과 행차원을 축(Axis)차
              원으로 부르고, 보고서의 데이터는 페이지 차원의 항목에 의해 결정되며, 따라서 페
              이지차원을 필터차원이라 한다.
차원의 중첩 : 보고서의 행이나 열이 두 개 이상의 차원으로 구성될 경우 차원의 중첩(Nesting)이
              일어난다고 한다.
피보팅      : 사용자는 보고서의 행, 열, 페이지 차원을 무작위로 바꾸어 볼 수 있으며 이러한 작
              업을 피보팅(Pivoting)이라 한다.
필터링      : 보고서 상에 나타나는 데이터를 특정기준(계층구조, 애트리뷰트, 항목이름, 데이터
              에 기초)에 부합하는 항목으로 한정하는 것을 필터링이라 한다.
드릴다운    : 요약된 형태의 데이터 수준에서 보다 구체적인 내용의 상세데이터로 단계적으로 접
              근하는 분석기법을 말한다. 이것은 좀더 자세한 데이터를 보여달라는 것으로 꼭 계
              층구조를 따라서 이루어지는 것은 아니다.
드릴업      : 드릴다운과 반대방향으로 사용자가 정보를 분석하는 것을 말한다.
드릴어크로스
            : 다른 큐브의 데이터에 접근하는 것을 말한다.
드릴쓰루    : OLAP시스템으로부터 데이터 웨어하우스, 혹은 OLTP시스템에 존재하는 상세데이터에
              접근하는 것을 말한다. 사용자가 보다 상세하고 구체적인 데이터가 필요한 경우 웨
              어하우스에 접근할 수 있어야 하며, 경우에 따라서는 트랜잭션 시스템의 데이터까
              지도 요구할 수 있다. 드릴쓰루는 OLAP시스템에 존재하지 않는 데이터가 추가적으
              로 필요할 경우 자동적으로 데이터 웨어하우스나 OLTP상의 데이터에 접근할 수 있
              는 통로를 제공한다. 드릴쓰루가 가능하기 위해서는 OLAP시스템에 있는 데이터와 웨
              어하우스에 있는 데이터사이의 논리적인 관계가 메타데이터로 정의되고 관리될 필요
              가 있다.
OLAP조인    : 다차원 질이는 하나이상의 큐브로부터 데이터를 요쳥할 수 있다. 질의과정에서 다
              수의 큐브를 논리적으로 조인할 필요가 있는데 이를 OLAP조인이라 한다.
 
에이젼트 (Agent) 
            : 사용자를 대신하여 백그라운드에서 작업을 수행하는 독립적인 소프트웨어 객체라고
              할 수 있다. OLAP시스템에서 에이젼트는 직접적인 사용자의 개입없이 작업을 자동화
              하고 사전에 정의된 어떤 조건을 탐지하여 사용자에게 경고하도록 설계되는 것이 일
              반적이다. 에이젼트는 정보과잉문제를 해결하기 위해 필수적이다. OLAP시스템에서
              에이젼트는 방대한 데이터를 대상으로 예외사항이나 문제점을 자동으로 탐지하고 사
              용자에게 경고한다. 에이젼트는 사전에 정의된 특정 사건에 의해 자동적으로 구동될
              수 있다. 

[OLAP 테크놀러지]

OLAP 시스템 아키텍쳐
 가장 하위층은 다차원 데이터가 물리적으로 저장되고 관리되는 계층으로, 다차원 데이터의 관리
에는 RDBMS나 MDDBMS가 사용된다. 다차원 프로세싱은 다차원 연산이 수행되고 다차원 질의가 처
리되는 과정으로 전용 OLAP엔진에 의해 수행된다. 가장 상위층에 위치한 사용자 인터페이스는
사용자가 질의를 구성하고, 질의로부터 얻은 결과를 사용자가 보기 쉽게 표현하는 과정을 말한
.
 OLAP 제품 구분
MOLAP  : (Multidimensional On-Line Analytical Processing)다차원 데이터베이스에 기반한 OLAP
         아키텍쳐를 말하며, 데이터마트용으로 적합하다.
장점  = 다차원 데이터의 저장과 프로세싱에 다차원 DBMS가 사용된다.  다차원 데이터의 저장과 
        프로세싱에 동일한 엔진이 사용되기 때문에 타아키텍쳐에 비해 네트워크상의 데이터 이
        동이 최소화될 수 있다. 다차원 DBMS는 복잡한 비즈니스 로직을 쉽게 반영하여 모델을 구
        축하고, 다차원 데이터의 저장과 프로세싱을 효과적으로 수행하며 사용자 질의에 신속하게
        응답할 수 있도록 제작되었다. 빠른 응답속도의 비결은 다차원 배열형태의 데이터구조를
        사용하는데 있다. 희박성이 높은 다차원 데이터의 저장공간을 치소화하기 위해 커다란 하
        나의 배열보다는 밀집된 형태의 조그만 배열들로 나누어져 저장된다.
배열사용의 장점 : 배열내의 값은 항목들의 각 조합에 대해 정돈되어 있으며 고정된 위치
                          를 가지므로 인덱스에 영향을 미치지 않고 갱신될 수 있다. 그래서 다
                          차원 DBMS는 읽기/쓰기 애플리케이션에 보다 적합하다. 또 복잡한 계산
                          식과 계층구조를 쉽게 모델링할 수 있는 장점이 있다.
     배열사용의 단점 : 차원을 구성하는 항목들에 변화가 생길 경우 데이터베이스가 전체적으
                          로 완전히 재구축되어야 한다는 단점을 가진다.
단점  = 다차원 데이터베이스는 관계형 데이터베이스에 비해 데이터 용량이나 에러 회복 능력, 하
        드웨어활용등의 측면에서는 상대적으로 다소 떨어진다. 
 
ROLAP  : (Relational On-Line Analytical Processing)사용자와 관계형 DBMS사이에 위치하여 사
         용자를 대신해서 복잡한 SQL을 생성하고 다차원 연산을 수행한다. 
ROLAP엔진은 관계형 데이터와 클라이언트 사이의 연결 역할을 수행한다. ROLAP엔진은
클라이언트의 다차원 질의를 적절한  SQL로 변환하여 관계형 DBMS에 넘겨주고, 관계형
DBMS로부터 처리된 결과를 다시 다차원 보고서로 변환하여 클라이어트에 넘겨주는 역할을
수행한다. 다차원 질의를 SQL로 변환하기 위해 메타데이터가 활용된다. 메타데이터는 차원,
계층구조 등과 같은 다차원모델에 관한 정보로 ROLAP툴에 의해 생성되고 관리된다.
다차원 DBMS는 일단 물리적 큐브가 만들어진 이후에는 매우 빠른 성능을 제공하지만 데이터베이스의
크기에 아직은 제한이 있고 추가적인 관리가 필요하다. 반면 ROLAP은 방대한 데이터를 대상으로
다차원 분석을 할 수 있지만 대부분 RDBMS와 SQL언어가 아직은 OLAP에 최적화되지 않았기 때문에
그 응답성능에 많은 제한을 가진다. 그래서 ROLAP제품들은 SQL문을 통해 필요한 데이터를 관계형
데이터베이스로부터 추출한 다음 자신의 ROLAP엔진에서 필요한 추가적인 조작을 수행한다.
 
테이블조인 : 두개이상의 테이블을 조인해야 할 경우 RDBMS는 이를 여러 개의 조인으로 분리하여
             순차적으로 조인한다. 이를 페어와이즈 조인(Pairwise Join)이라 한다. 다른 테이블
             과 관계되는 테이블은 사실테이블인데 보통 사실테이블은 아주 크기 때문에 조인된
             결과가 엄청 커질 가능성이 있는데 이러한 문제를 해결하기 위해 직접 관계되지 않
             는 테이블을 조인하는 방법이 사용되고 있는데 테이블간에 연결되는 칼럼이 없는 경
             우 조인을 하게 되면, 두 테이블이 가진 행들의 모든 조합이 만들어지게 된다. 이를
             카티션 프로덕트(Cartesian Product)라 한다. 이 방법은 상대적으로 작은 규모의 테
             이블에 대해서만 효과를 가진다.
 
DOLAP  :  (Desktop OLAP) 다차원 데이터의 저장 및 프로세싱이 모두 클라이언트에서 이루어진다.
          따라서 진정한 의미의 클라이언트/서버 방식이 아니다. 분석에 필요한 데이터는 데이
          터베이스에서 추출되어 클라이언트에 특수한 파일 형태로 저장된다. 비교적 설치와 관
          리가 용이하고 유지보수 부담이 적고 적은 비용으로 구축할 수 있지만 필요한 데이터가
          모두 클라이언트로 이동될 필요가 있으며, 이런 문제로 대용량의 데이터를 처리하는데
          한계를 가진다. 또 각각의 사용자들이 자신의 클라이언트에 데이터를 저장하고 유지하
          기 때문에 데이터들이 일관성을 갖도록 관리하는 것 역시 큰 문제다.
HOLAP  :  (Hybrid OLAP) 다차원 데이터의 저장공간으로 다차원 데이터베이스와 관계형 데이터베
          이스가 함께 사용될 수 있는 제품을 말한다.  요약된 데이터나 관계식에 의해 새로 계
          산된 데이터는 다차원 데이터베이스에 저장되며, 상세데이터는 관계형 데이터베이스에
          저장된다.
 ROLAP와 MOLAP의 차이                                                 
ROLAP : MOLAP에 비해 복잡한 비즈니스 로직을 반영하기 힘들고 다차원 연산기능이 부족하다. 
대량의 상세수준 데이터를 대상으로 하거나 차원구성 항목들이 급격히 변경되는 경우에
적합하다.
MOLAP : ROLAP에 비해 대용량의 데이터를 처리하지 못한다. 다수의 사용자를 대상으로 
읽기/쓰기를 지원해야 하고 복잡하고 방대한 다차원 연산을 필요로 하는 경우에 적합하다.
 
 웹 OLAP를 사용함으로써 이점 
1.웹 브라우저를 사용함에 따른 비용절감 - 각자의 pc에 전용 OLAP툴을 가질 필요가 없어서 OLAP  소프트웨어구매에 따른 비용을 절감할 수 있다. 웹브라우저의 친숙함으로 인해 사용자교육과 관련된 비용도 절감할 수 있다.
2.모든 사용자들이 지리적인 제한없이 정보에 빠르고 쉽게 접근할 수 있다.
3.애플리케이션의 유지가 전적으로 서버에서 수행되므로, 클라이언트 애플리케이션의 유지보수가 최소화되며 소프트웨어 설치 및 유지보수 비용이 줄어든다. 
4.플랫폼간의 호환성 - 사용자는 하드웨어 플랫폼에 무관하게 완전히 동일한 인터페이스를 사용한다. 
 
 벤치마크 
OLAP시스템의 전체적인 성능을 측정하기 위한것이다. 벤치마크는 기업들이 실제로 사용하는
가장 대표적인 애플리케이션인 매출분석모델을 사용한다. 벤치마크에 사용되는 매출분석모델은
제품, 매장, 채널, 기간, 유형, 변수의 6개 차원을 가진다.  벤치마크과정에서 모든 데이터는
반드시 서버에 저장되고 모든 연산 역시 서버에서 수행될 것을 요구한다. 따라서 클라이언트는
단지 사용자로부터 질의에 필요한 파라미터값을 입력받고,  서버에 질의를 던지기 위한 수단으
로서만 존재한다.

 

[ 데이터마이닝과 OLAP ]

데이터마이닝 
일반적인 기법들이 미처 발견하지 못한 기업 데이터베이스 내에 숨겨져 있는 유용한 패턴을
발견한다. 일반적으로 데이터마이닝은 사용자의 개입 없이 혹은 최소한의 개입으로 데이터로
부터 유용한 추세나 패텬을 자동적으로 추출할 수 있는 기법의 사용을 말한다.
 
* 데이터마이닝 애플리케이션 *
데이터베이스 마케팅 - 거래 데이터의 발생량이 많고 고객의 이탈이 심한 금융, 유통, 통신 분야를
                     중심으로 사용됨. 데이터베이스 마케팅은 데이터베이스에 축적된 고객에 관한
여러가지 정보를 바탕으로 고객 개개인과의 장기적인 관계구축을 위한 마케팅
전략을 수립하고 집행하는 제 활동을 말한다.
부정행위 적발       - 신용카드 도용이나 보험사기등에서 정상적인 거래와 부정한 거래를 구분하는
                      유용한 패턴을 발견
시장바구니 분석     - 어떤 상품들을 고객들이 함께 구매하는 경향이 있는지 밝혀낸다.
* 데이터마이닝 작업과 기법 *
연관규칙(Association Rule) 탐사 - 시장바구니분석과 같이 동시에 발생하는 사건그룹
내에서 사건들사이에 존재하는 친화성(Affinity)이나 패턴을 발견하는 작업을 말한다.
연속패턴(Sequential Pattern) 탐사 - 연관규칙탐사의 변형으로 사건들이 시간적인 관계를
가지는것을 말한다.
분류(Classification) - 어떤 항목이 속하는 그룹의 특성을 가장 잘 나타낼 수 있는 특징들을 
발견하는 것이다.
추정(Estimation) - 주가나 매출액과 같은 연속된 결과를 예측하는 작업을 말한다.
추정은 회귀분석(Regression)으로 표현되기도 한다.
군집구분(Clustering) - 이질적인 항목들을 몇 개의 보다 동질적인 그룹(군집)으로 
구분하는 작업이다. 군집구분은 어떠한 그룹도 사전에 정의되어 있지 않다는
점에서 분류와 다르다.
검증형기법 - 자신의 사전지식을 검증하는 기법을 말한다. 단점은 필요한 모든 질문을 
사용자가 생각해내야 한다는 점인데, 방대한 데이터에 대해 아는 한계가 있으며
많은 중요한 사항들이 파악되지 않은채 간과될 수 있다.
발견형기법 - 검증형 접근법의 경우 가설을 세우고 검증하는 모든 작업이 사용자 책임인
반면 발견형 접근법의 경우 적절한 패턴이나 모델을 발견하는 대부분의 작업을
컴퓨터가 수행한다. 즉 시스템이 데이터분석의 주도권을 가진다.
 
** 데이터마이닝 프로세스 **
1.문제정의단계 
해결할 비즈니스 문제를 정의하는 것에서부터 시작된다. 이 과정에서 애플리케이션영역에 대한 이
해와 적절한 사전지식은 매우 중요하다. 
2.선별 및 정제 단계
마이닝 작업에 필요한 목표데이터를 선택하는 작업이 필요하다. 만약 필요한 데이터가 축적되어 
있지 않은 경우 별도의 데이터 수집작업이 필요할 수 있다. 마이닝에 사용될 데이터의 질을 향상
시키는 정제작업을 또한 같이 해준다. 데이터웨어하우스가 구축된 경우 정제작업의 상당부분이 웨
어하우스 구축과정에서 수행된다. 
3.변환단계
목표데이터는 분석에 적합한 형태로 변환된다. 
4.데이터마이닝 단계
실제 데이터마이닝 알고리즘이 적용되는 단계이다. 
5.해석 및 평가 단계
마이닝된 결과를 해석하고, 기업에 실제적인 가치가 있는지 평가하는 단계이다. 이 과정에서 인적
요소의 역할은 매우 중요한데 사람만이 마이닝의 결과로 나타난 어떤 패턴이나 규칙이 타당하고 
기업에 유용한 것인지를 판단할 수 있다. 
6.통합단계
발견된 지식은 비즈니스에 활용된다. 
 
* 데이터웨어하우징과 데이터마이닝
 
웨어하우스에는 여러 소스에서 추출/통합되어 일차 필터링된 깨끗한 데이터가 저장되므로 마이닝을
위한 데이터의 질과 일관성이 보장된다. 따라서 일단 데이터웨어하우스가 구축된 후 마이닝을 수행
한다면, 데이터와 관련된 많은 문제들이 상당부분 해결될 수 있다. 즉 데이터웨어하우스는 마이닝
에 필요한 형태의 정제된 데이터를 가지고 있으며 마이닝을 위한 좋은 기반을 제공한다. 
 
** 데이터마이닝 기법 **
1.연관규칙탐사
상품 혹은 서비스 간의 관계를 살펴보고 이로부터 유용한 규칙을 찾아내고자 할 때 이용될 수 있는 
기법이다. 상품이나 서비스의 거래기록데이터로부터 상품간의 연관성정도를 측정하여 연관성이 많
은 상품들을 그룹화하는 클러스터링의 일종이며, 동시에 구매될 가능성이 큰 상품들을 찾아냄으로
써 시장바구니분석에서 다루는 문제들에 적용될 수 있다. 
 
연관규칙 : If A, then B(A->B) - 상품 A가 구매되어진 경우는 상품 B도 구매된다. 
         예) 맥주와 아기기저귀
 
2.연속패턴탐사
동시에 구매될 가능성이 큰 상품군을 찾아내는 연관성측정에 시간이라는 개념이 포함되어 순차적인
구매가능성이 큰 상품군을 찾아내는 것이다. 
 
연관규칙 : A->B - 상품 A가 구매되면 일정시간이 경과한 다음에는 상품 B가 구매된다.
          예)컴퓨터를 산사람은 다음달에 레이저프린터를 산다.
 
3.군집분석
고객수입, 고객연령과 같은 속성이 비슷한 고객들을 묶어서 몇 개의 의미있는 군집으로 나누는 것
을 목적으로 한다. 전체가 너무 복잡할 때에는 몇 개의 군집을 우선 살펴봄으로써 전체에 대한 윤
곽을 잡을 수 있다. 
 
4.의사결정수(Decision Trees)
분류 및 예측에 자주 쓰는 기법으로 DM의 응답여부등에 영향을 미치는 변수들과 변수들의 상호작용
을 누구나 쉽게 이해할 수 있도록 굳이 통계학적인 용어를 쓰지 않고도 설명이 가능하다는 것이 큰
장점이며 특징이다. 
 
5.신경망모형
인간이 경험으로부터 학습해 가는 두뇌의 신경망 활동을 흉내내어 자신이 가진 데이터로부터의 반
복적인 학습 과정을 거쳐 패턴을 찾아내고 이를 일반화함으로써 특히 향후를 예측하고자 하는 문
제에 있어서 유용하게 이용되는 기법이다. 
 

 

[데이터 웨어하우스의 비즈니스적인 관점]

 데이터웨어하우스의 요소
1.기술적인 요소 : 기업의 전산실이 주도하며, 데이터 웨어하우스를 기술적으로
    구현하는데 필요한 요소이다.
2.분석적인 요소 : 기업의 현업이 주도하며, 구현된 데이터 웨어하우스를 실제로 사용하여
   데이터를 분석하는 분야
이다.
3.경영적인 요소 : 기업의 경영자가 주도하며, 분석된 데이터를 가지고 의사결정을 내리는
  분야이다.

의사결정과정
[ 관계형 데이터베이스와 다차원 데이터베이스의 비교 ]
 
Ex) 3개월간 3개의 지역에서 3가지 제품을 판매할 판매고
1.관계형 데이터베이스
 
 
2.다차원 데이터베이스
 
 
 다차원 데이터베이스의 질의속도가 빠른 이유
- 다차원 데이터베이스는 먼저 hashing방식으로 차원값을 찾아내고 그 값으로 데이터의 "
디스크주소를 계산한다. 그 주소로 가서 단 한번의 디스크 I/O(데이터 페이지)로 원하는

데이터를 액세스한다. 메모리에 디스크 캐싱으로 I/O의 수를 최소화할 수 있다.
 
다차원 데이터베이스의 단점
- 차원의 개수가 많아지거나 차원에 속하는 차원값이 많아지게 되면 다차원 데이터베이스의
크기가 기하급수적으로 늘어난다. 다차원 데이터베이스는 모든 차원들 연산하여 생길 수
있는 모든 셀을 가지기 떄문에 값을 가지지 않는, 즉 무의미한 셀들이 많아진다. 이것을
희박행렬이라고 하는데,  이런 경우 MOLAP솔루션은 부적합하다.

 

[하드웨어와 데이터베이스]

 
1.데이터웨어하우스와 하드웨어
 
데이터웨어하우스를 위한 하드웨어 기능
- 강력한 배치프로세스(batch process)지원 기능 : 데이터의 추출, 로드, 정제, 통합작업과
사실 테이블 밑 요약 테이블을 만드는 과정은 모드 배치 프로세스이다.
- 확장성 : 시계열 데이터의 축적속도는 매우 빠르기 때문에 하드웨어는 확장성이 좋아야 한다.
- 시스템의 안정성
- 64bit Architecture : 이것을 지원하기 위해서는 CPU, bus, memory, OS, DB가 모두 64bit를
지원해야 한다. 데이터 웨어하우스를위한 하드웨어가 64bit를 지원해야 하는 이유는 메모리의
크기가 4GB이상이어야 하고 OS파일의 크기도 2GB이상 지원해야 하기 때문이다.
- SMP(Symmetric Multi Processing) : SMP는 여러 개의 CPU가 메모리 및 디스크를 공유하는 
방식으로 되어 있는 아키텍쳐이다. CPU들은 서로 독립적으로 존재하며, 메모리에 있는
프로그램과 데이터를 공유버스(Shared bus)를 통해서 액세스하게 된다.
  
       공유버스 구조의 SMP                              크로스바 스위치 구조의 SMP
 
  대부분 공유버스구조를 취하는데 이 구조는 여러 개의 CPU가 동일한 메모리를 동시에
액세스할 때 공유버스 에서 충돌이 일어난다. 따라서 CPU의 수가 증가하면 충돌이 더 많이
일어나기 때문에 확장성이 떨어진다. 일부에서는 공유버스대신 크로스바스위치를
사용하는데, 여러 개의 CPU가 메모리를 액세스해도 크로스바 스위치가 중재작용을
해주므로 공유버스처럼 충돌이 일어나지 않아 확장성이 높다.
 
  SMP방식의 장점 : 사용하기 편하다. 각 CPU에 대한 로드의 분산은 OS레벨에서 해주기 때문에 
어플리케이션레벨에서는 단일 프로세서 환경에서처럼 프로그래밍을 해주면 된다. 디스크를
액세스할 때 MPP처럼 지역성(locality)문제가 없어서 충돌이 일어나지 않는다는 점이다.
따라서 디스크를 많이 사용하는 배치 프로세스를 할 경우 빠르게 처리할 수 있다.
- MPP(Massively Parallel Processing)
  MPP의 일반적인 구조는 CPU-메모리-디스크가 한조이다. 이것은 노드(node)라고 하는데 
MPP에서는 노드마다 OS와 데이터베이스가 있어야 한다.(한 개의 노드는 SMP처럼 구성되어 있기
때문이다) MPP는 여러 개의 노드로 되어 있고 노드와 노드 사이를 연결하는 Internode Connection이 있다.
이 Internode Connection에 따라서 MPP를 구현하는 방식에 차이가 난다.
 
 
  각 노드에 있는 local disk에 데이터가 존재하게 되는데, 로컬 디스크에 있는 데이터를 다른 노드에서 
필요로 할 경우 Internode Connection을 통해서 액세스하게 된다. 한 노드가 자기 노드 내에 있는
로컬 디스크를 액세스하는 것은 빠르지만 다른 노드의 디스크를 액세스할 때는 속도가 느릴 수밖에 없다.
노드간 데이터의 분산정도를 데이터의 지역성(locality)이라고 한다. 데이터의 지역성이 좋다는 의미는
로컬 디스크에 있는 데이터를 노드 내부에서 액세스하는 경우가 많다는 것이다. 반대로 지역성이
나쁘다는 것은 원격 디스크의 데이터를 자주 액세스한다는 의미이다.
- NUMA(Non-Uniform Memory Access) : 최근에 나온 하드웨어 아키텍쳐로 SMP의 장점과 MPP의 
장점을 합한 것으로 생각할 수 있다. NUMA이전의 하드웨어는 주로 디스크를 공유하는 방식이었으나
NUMA는 메모리를 공유하는 방식이다. NUMA도 MPP처럼 노드로  구성되어 있다. 그러나 노드 내에는
디스크가 없고 노드간에 서로 공유하게 되어 있다. MPP처럼 지역성의 문제가 있을 수 있지만 MPP의 경우는
원격 디스크에 있는 데이터를 액세스해야 하는데, NUMA의 경우는 원격 메모리에 있는 프로그램과 데이터를
액세스하게 된다. 대체적으로 프로그램과 데이터는 동일한 주소환경에 존재하게 되므로 지역성이 매우 강하다.
SMP처럼 NUMA도 OS나 데이터베이스가 하나만 존재한다.
- 하드웨어의 용량산정 
  .디스크용량산정 
     최소한의 크기는 원시 데이터(row data)의 5배이다. 보통 7-8배이다. 데이터파일외에도 redo log file,
     archive file, index file등이 중요하게 다뤄진다. 
  .메모리용량산정
     데이터웨어하우스의 성능은 메모리의 크기와 매우 밀접한 관계가 있다. 디스크에서 데이터를 읽거나 쓰게
되면 Data Block Buffer라는 부분에 저장이 되는데 블록버퍼 크기가 커지면 많은 데이터를 한꺼번에
읽고 쓸 수 있다. 이 블록버퍼가 클수록, 블록 버퍼의 수가 많을수록, 데이터웨어하우스에서 중요한
읽기성능 (Read performance)과 Bulk Data load성능이 좋아진다.
  .CPU용량산정

 

[ 데이터베이스 마케팅 ]

1.데이터베이스 마케팅
데이터베이스 마케팅의 목적은 고객과의 장기적인 관계형성을 통해 고객의 생애가치(life time value)를 최대
화하는데 있다. 생애가치란 기업 입장에서 본 고객의 가치이며, 한 사람의 고객이 평생을 걸쳐 특정의 품과
서비스를 구매하는데 지출하는 총소비 금액을 말한다.
 
데이터베이스 마케팅은 신규고객 개척보다는 기존고객의 이탈방지에 더욱 비중을 두는 고객유지마케팅
(Retention Marketing)방식이다. 데이터웨어하우스는 데이터베이스 마케팅 개념을 최적으로 구현할 수 있다. 
그 이유는 다양한 분석을 다차원적으로 즉시 할 수 있다는데 있다. 
 
 
** 고객데이터베이스 구축 방법론
 1단계 : 고객에 관한 정보를 체계적으로 데이터베이스화 한다.
2단계 : 고객 데이터베이스로부터 원하는 정보를 검색, 가공, 분석하여 필요한 데이터를 추출한다.
3단계 : 목표고객과 관련 데이터를 이용하여 효과적인 TM/DM을 실시한다.
4단계 : 마케팅 결과를 데이터베이스화하여 관리함으로써 장기적인 마케팅 의사결정을 지원한다

댓글 없음:

댓글 쓰기