소프트웨어시스템 실습 다차원 데이터 구성 및 OLAP

Slides:



Advertisements
Similar presentations
Web Based Data Warehouse Query Tool 이화여자대학교 2002 년 컴퓨터학과 졸업프로젝트 14 조.
Advertisements

2011년 월별 영업일수 정리 2011년 월별 Calendar (단위: 일)
훈련 계획.
요일과 월 Sun. Sunday 일요일 Mon. Monday 월요일 Tue. Tuesday 화요일
MS SQL Server 학기, 소프트웨어 설계 및 실험 ( Ⅰ )
Data Warehouse.
국립원예특작과학원 기술지원과 채소기술지원실
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
16 분석함수 분석 함수의 개념 분석 함수의 종류 계층적 질의문.
데이터 웨어하우스를 위한 데이터베이스 설계: 기본요건
제 1장 C 언어의 소개.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
3 2 년 1 나만의 하나뿐인 달력~♥ sujin.
주)INVENTORNICS 노창배 소프트웨어 김 경 순
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express Slide 1 (of 25)
제 7 장 문장 구조화 제어문 지정문 조건문 반복문 GOTO 문 비결정적문.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
Horowitz, Sahni and Anderson-Freed Computer Science Press
MySQL 및 Workbench 설치 데이터 베이스.
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
목 차 Ⅰ 회사소개 Ⅱ CIP 소개 Ⅲ TPM 추진현황 Ⅳ 활동 성과 및 향후 계획.
EARNED VALUE MANAGEMENT
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Excel OLAP Reporting / OWC를 이용한
목차 백업과 복원.
SSCI 저널 리스트 보기 및 Impact Factor 확인하는 법
회 사 소 개 ㈜ GPC 선박용 비상발전기 전문제조업체 Challenge & Create Toward World Best.
마케팅 분석 시스템 개발 방법론 2004년 5월 27일 ㈜비아이솔루션 김환태
SSAS 변화된 구조와 사용자 분석 화면 구현 우철웅 기술이사 BI 사업부 인브레인.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
웹 로그 데이터를 이용한 다차원 질의 분석 데이터베이스 연구실 석사 3학기 김 백 선.
5장 Mysql 데이터베이스 한빛미디어(주).
6장 그룹 함수.
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
Dept. of CSE, Ewha Womans Univ.
Pilot Decision Support Suite를 사용한 매출액 분석
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
RDB 형식의 데이터구조를 이용한 OLAP Server 설계 및 구현
5장 Mysql 데이터베이스 한빛미디어(주).
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
C#.
Derived Types-- Enumerated, Structure and Union
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
JDBC Lecture 004 By MINIO.
세일즈분석/분석CRM을 위한 데이터마이닝 활용방안
제 8 장 객체지향 데이타베이스와 데이타베이스의 새로운 응용 분야
(Data Exploration & Analysis)
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의

Database 중고차 매매 DB 비즈니스IT 윤동섭.
Chapter 03. 관계 데이터베이스 설계.
Database Management System
단계1 단계2 단계3 단계4 단계5 단계별 제목 상세내용1 상세내용
문성우 SQL 실습 Part Ⅰ 문성우.
최근의 취업률 / 실업률 추이 취업률 실업률 취업자 증가수 JUL % 10 % 100만 명 50 % 5 %
Data Warehouse 구축 (설계 위주)
Data Warehouses & Multi-dimensional Databases
자료 : 한국면세점협회 B $ 15.6B $ 14.9B $ 14.17B $ (1.6조 원) 자료 : 한국면세점협회
오라클 11g 보안.
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan 자료 : 리얼메터
Ransomware (28 %) 금융정보 탈취 (17 %) Downloader (10 %) Dropper (9 %)
ER-관계 사상에 의한 관계데이터베이스 설계 충북대학교 구조시스템공학과 시스템공학연구실
7장 테이블 조인하기.
Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan 자료 : 리얼메터
CHAP 15. 데이터 스토리지.
 6장. SQL 쿼리.
                              데이터베이스 설계 및 실습 #6 - SQL 실습 한국외국어대학교 DaPS 연구실                              
임시테이블과 테이블변수 SQLWorld Study Group - 최명환 -.
주)INVENTORNICS 노창배 소프트웨어 김 경 순
말레이시아 & Aegis BPO Malaysia 소개
Presentation transcript:

소프트웨어시스템 실습 다차원 데이터 구성 및 OLAP 2016. 2학기

Multi-Dimensional Data Decision Making을 위해 특별히 설계된 ‘subject’ 중심적인 데이터 저장소로서 다양한 ‘view’에서 관찰 분석이 가능 subject (measure) -> ‘fact’ 테이블 view -> ‘dimension’ 테이블

분석을 위한 DB의 구성 ? 해당 좌표에 분석대상을 저장 measures 분석의 관점 dimensions

Multi-Dimensional DB 구축 Multi-dimensional DB (n차원 배열형태) 로 구축 Product dimension measures dollars_sold units_sold dollars_cost Store dimension Date dimension

Multi-Dimensional DB 구축 관계형 데이터베이스에서 MDB(Data Warehouse)의 구축

Multi-Dimensional DB 스키마 관계형 데이터베이스에서 DW의 구축 : Star schema model measures

Multi-Dimensional DB 구축 Relational DB로 구축 ‘Time’ Dimension 테이블 time_key day_of_week month quarter year holiday_flag ‘Product’ Dimension 테이블 ‘Store’ Dimension 테이블 measures time_key (FK) product_key store_key dollars_sold units_sold dollars_cost ‘Sales’ Fact 테이블

Multi-Dimensional DB 구축 measures dollars_sold units_sold dollars_cost

Multi-Dimensional DB 활용 연산: Slicing 특정 차원을 고정시켜놓고 다른 차원들의 데이터를 관찰 예: ‘EverMore’ 지점을 고정하여, data, product 차원에서 판매 현황 관찰

Multi-Dimensional DB 활용 연산: Dicing 각 차원 마다 범위를 설정하여 보다 제한된 cube를 생성 예: Time 차원 범위: 208년 4월 Product 차원 범위: Food 카테고리 Store 차원 범위: Florida

Multi-Dimensional DB 활용 연산: Drill-down (“Show me more detail”) 상위 수준의 요약정보로부터 시작하여 단계적으로 관련된 구체 데이터를 추적하는 과정 예: 2014년 분기별 판매량 정보 2014년 월별 판매량 정보 연산: Roll-up drill-down의 반대 연산

Multi-Dimensional DB 활용 연산: Pivoting (or Rotating) n개 차원의 방향을 전환 새로운 차원의 삽입하면서 수행할 수도 있음

Multi-Dimensional DB 스키마

Multi-Dimensional DB 구축: R의 활용 product 차원 테이블: prod_table time 차원 테이블: month_table location 차원 테이블: state_table state_table <- data.frame(key=c("CA", "NY", "WA", "ON", "QU"), name=c("California", "new York", "Washington", "Ontario", "Quebec"), country=c("USA", "USA", "USA", "Canada", "Canada")) month_table <- data.frame(key=1:12, desc=c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"), quarter=c("Q1","Q1","Q1","Q2","Q2","Q2","Q3","Q3","Q3","Q4","Q4","Q4")) prod_table <- data.frame(key=c("Printer", "Tablet", "Laptop"), price=c(225, 570, 1120))

Multi-Dimensional DB 구축: R의 활용 Fact 테이블의 구축: random하게 measure 데이터 생성 gen_sales <- function(rec_num) { # Generate ‘fact’ data randomly loc <- sample(state_table$key, rec_num, replace=T, prob=c(2,2,1,1,1)) time_month <- sample(month_table$key, rec_num, replace=T) time_year <- sample(c(2012, 2013), rec_num, replace=T) prod <- sample(prod_table$key, rec_num, replace=T, prob=c(1, 3, 2)) unit <- sample(c(1,2), rec_num, replace=T, prob=c(10, 3)) # 판매 개수 amount <- unit * prod_table[prod, ]$price # 판매금액 = 개수 * 단가 sales <- data.frame(month=time_month, year=time_year, loc=loc, prod=prod, unit=unit, amount=amount) sales <- sales[order(sales$year, sales$month),] # 시간에 따라 fact data의 sorting row.names(sales) <- NULL return(sales) } loc <- sample(state_table$key, rec_num, replace=T, prob=c(2,2,1,1,1)) 샘플링 대상 샘플링 횟수 중복허용 샘플링 확률

vector 또는 data.frame의 정렬 sales <- sales[order(sales$year, sales$month), ] 1차 정렬 2차 정렬 x <- c(10, 50, 40, 30, 5) order(x) # 5 1 4 3 2 를 출력 5번째 값 < 1번째 값 < 4번째 값 < 3번째 값 < 2번째 값 x <- x[c(5,1,4,3,2)] # => x <- x[order(x)]

Multi-Dimensional DB 구축: R의 활용 ‘Sales’ Fact 테이블의 생성 sales_fact <- gen_sales(500) head(sales_fact)

Multi-Dimensional DB 구축: R의 활용 library(sqldf) sqldf("select * from state_table") 표준 SQL 문장 처리 sqldf("select s.key, sum(amount) from sales_fact f, state_table s where f.loc=s.key group by s.key ")

Multi-Dimensional DB 구축: R의 활용

Multi-Dimensional DB 구축: R의 활용 다차원 Multi-dimensinal DB(cube)의 생성 revenue_cube <- tapply(sales_fact$amount, sales_fact[ , c("prod", "month", "year", "loc")], FUN=function(x){return(sum(x))})

tapply 연습 vector SQL의 “group by” 연산과 유사 첫 인자 vector와 동일한 길이의 index (factor) SQL의 “group by” 연산과 유사

Multi-Dimensional DB 구축: R의 활용 dimnames(revenue_cube)

Multi-Dimensional DB Operations OLAP operations Slice Dice Rollup Drilldown Pivot

Multi-Dimensional DB Operations Slicing # cube data in Jan, 2012 revenue_cube[, "1", "2012",] revenue_cube["Tablet", "1", "2012",] cube 차원 순서 : "prod", "month", "year", "loc "

Multi-Dimensional DB Operations Dicing scube <- revenue_cube[c("Tablet","Laptop"), c("1","2","3"), , c("CA","NY")] # dicing scube[ , "1", , "CA"] # 작은 size의 cube에서 질의 cube 차원 순서 : "prod", "month", "year", "loc "

Multi-Dimensional DB Operations Roll-up 관찰하고 싶지 않은 차원을 없애기 위해 집계함수(aggregation function) sum 을 이용 예: year, prod, loc 차원에 대해 데이터 관찰 -> loc 차원 없애고, year, prod 차원에 대해 데이터 관찰  cube 차원 순서 : "prod", "month", "year", "loc " apply(revenue_cube, c("year", "prod"), FUN=function(x) {return(sum(x, na.rm=TRUE))}) (n차원) array FUN함수를 적용하게 되는 기준 컬럼

Multi-Dimensional DB Operations Drill-down 차원의 추가 또는 차원 하향 레벨링을 통해 세밀하게 데이타 관찰 예: 각 product에 대한 매년 판매량 관찰 -> 매달 판매량 관찰 apply(revenue_cube, c("year", "month", "prod"), FUN=function(x) {return(sum(x, na.rm=TRUE))})

Multi-Dimensional DB Operations Pivoting  예: year vs. month (또는 month vs. year) 차원에 대한 판매량 관찰 예: product vs. location (또는 location vs. product) 차원에 대한 판매량 관찰 apply(revenue_cube, c("year", "month"), FUN=function(x) {return(sum(x, na.rm=TRUE))}) apply(revenue_cube, c("prod", "loc"), FUN=function(x) {return(sum(x, na.rm=TRUE))})