data model for data warehouse
DESCRIPTION
แบบจำลองข้อมูลของคลังข้อมูล (การออกแบบคลังข้อมูล)TRANSCRIPT
LOGO
1
Data Warehousingบทท� 5 แบบจาลองสาหรบคลงขอมล
(Data Modeling for Data Warehouse)
Contents
รปแบบการออกแบบคลงขอมล2
แนวทางการออกแบบคลงขอมล3
คานยามของขอมลท�เกบลงคลงขอมล1
LOGO2
แนวทางการออกแบบคลงขอมล3
การออกแบบจาลองหลายมตจาก ER-diagram4
การออกแบบคยของตาราง5
การออกแบบ Dimensional Data Model
Relational Data Model แสดงความสมพนธท�มอยจรงของขอมลตางๆ ท�ม
อยในองคกร แตเน�องจากมความซบซอนของความสมพนธคอนขางมาก ทาให
การคนหาขอมลและคานวณผลลพธท�ตองการใชในการวเคราะหระบบธรกจ
เปนไปไดยาก
ดงน�น เพ�อความสะดวกในการใชขอมล จงมการคดคน Data Model แบบ
LOGO3
ดงน�น เพ�อความสะดวกในการใชขอมล จงมการคดคน Data Model แบบ
ใหม ท�เหมาะสาหรบการแสดงผลลพธท�ตองการใช เรยกวา “แบบจาลองขอมล
เชงมต (Dimensional Data Model)”
คานยามของขอมลตางๆ ท�เกบในคลงขอมล
สวนประกอบของคลงขอมล
Fact table
Measures
Dimensions (table)
LOGO4
Dimensions (table)
Attributes
Hierarchies
(1) ตาราง Fact
ตาราง Fact เปนตารางหลก ใชสาหรบเกบขอมลท�เก�ยวกบหวขอท�ผใชสารสนเทศสนใจ
LOGO5
โดยตารางน�จะเกบขอมลท�มการเปล�ยนแปลงตางๆ ในองคกร รวมถงขอมลเก�ยวกบสถานะ (State) ของส�งตางๆ ท�เก�ยวของกบองคกร
(1) ตาราง Fact
ในการออกแบบ Fact Table น�น ส�งท�เราตองคานงถง คอ
- Measure
- Dimension
- ความตองการในการวเคราะหขอมล
ซ�งในการสรางโครงสรางคราวๆ ของ Fact ท�เราสนใจ จะทาใหเรา
LOGO6
ซ�งในการสรางโครงสรางคราวๆ ของ Fact ท�เราสนใจ จะทาใหเราสามารถมองเหนภาพของโครงสรางของ Fact Table ท�เกดข�นได
** ตวอยางเชน ในการวเคราะหขอมล ยอดขายสนคาของรานคา ผบรหารตองการท�จะวเคราะห “ยอดขาย ตาม เวลา และประเภทสนคา”
(1) ตาราง Fact
ประเภท ช�อ คาท�เปนไปได (Possible Values)
Measure ยอดขาย จานวนจรงใดๆ
Dimension (1) ประเภทสนคา สนคาบรโภค, สนคาควบคม ฯลฯ
Dimension (2) วนท� วนท� 4 กนยายน 2550, เดอนกรกฏาคม ฯลฯ
LOGO7
จากตารางทาใหเราทราบวา
Measure ตวหน�งๆ น�น จะถกกาหนดมมมองดวย Dimension ใดบาง
คาท�เปนไปได (Possible Values) บอกเราไดวา ขอบเขตของคาท�สนใจสาหรบ Dimension คออะไรบาง และสามารถบอกไดวาคา Measure จะมลกษณะเปนอยางไร (เชน เปนจานวนจรง – มทศนยม หรอเปนจานวนเตม – ไมมทศนยม)
(1) ตาราง Fact
Dimension ชดหน�งๆ น�น อาจสามารถใชกาหนด Measure ไดหลายๆ ตวกได
อยางเชน Dimension ประเภทสนคา และเวลา อาจจะใชเพ�อกาหนดมมมองใหกบ
Measure จานวนสนคาท�ขาย ไดดวย โดยสามารถเพ�มเตม Measure ตวใหมไดดงน�
ประเภท ช�อ คาท�เปนไปได (Possible Values)
LOGO8
ประเภท ช�อ คาท�เปนไปได (Possible Values)
Measure (1) ยอดขาย จานวนจรงใดๆ
Measure (2) จานวนสนคาท�ขายได จานวนเตมใดๆ
Dimension (1) ประเภทสนคา สนคาบรโภค, สนคาควบคม ฯลฯ
Dimension (2) วนท� วนท� 4 กนยายน 2550, เดอนกรกฏาคม ฯลฯ
(2) ตาราง Dimension
Dimension คอ รปแบบท�เราตองการดขอมล
เรามกจะตองการดขอมลในชวงเวลาตางๆ ตามภมภาคตางๆ ตามแตละชนดสนคา แตละพนกงาน เปนตน
Dimension ถกกาหนดข�นโดยอาจจะม หรอไมม Hierarchies
รายป รายไตรมาส รายเดอน รายวน
LOGO9
รายป รายไตรมาส รายเดอน รายวน
กลมผลตภณฑ รายผลตภณฑ
ตาราง Dimension แตละตารางจะประกอบดวยหน�งคยหลก (Primary Key) ท�ใชสาหรบเกบขอมลอางองจากคยท�จดเกบไวใน Fact table
(3) Measures
Measures คอ คาท�ตองการอยากจะทราบ เพ�อนาไปใชประกอบการตดสนใจ
โดยท�วไปจะเปนคาทางตวเลข
มกจะเปนคาท�บวกรวมกนมา
LOGO10
มกจะเปนคาท�บวกรวมกนมา
ยอดขาย จานวนหนวยท�ขายได ผลกาไร คาใชจายอ�นๆ
Measures บางอยางก บวก รวมกนไมได
จานวนสนคาคงคลง จานวนของลกคา
รปแบบการออกแบบคลงขอมล
รปแบบของการออกแบบขอมลหลายมต
Star schema: รปแบบขอมลหลายมตแบบน� จะม Fact table เปนศนยกลางและสรางความสมพนธเช�อมไปยงกลมของ Dimension tables
LOGO11
tables
Snowflake schema: เปนรปแบบของการจด Star schema ใหสละสลวยข�น โดยท�บางมตของขอมลใน Dimension table จะไดรบการปรบฐานใหเปนขอมลท�มขนาดเลกลง
การออกแบบคลงขอมลแบบ Star schema
LOGO12
การออกแบบคลงขอมลแบบ Snowflake schema
LOGO13
ขอมลสาหรบการเลอกใชงาน Schema
Star schema Snowflake schema
จานวนแถว มากกวา นอยกวา
งายตอการเขาใจ งายกวา ยากกวา
จานวนตาราง นอยกวา มากกวา
LOGO14
จานวนตาราง นอยกวา มากกวา
ความซบซอนในการประมวลผล Query
งายกวา ยากกวา
การคนหามตขอมล เรวกวา งายกวา
การออกแบบคลงขอมลDesigning of a Data Warehouse
หลงจากท�ไดทางานวเคราะหความตองการผใช และทาการจาแนกขอมล (Fact/Dimension/Measure) แลวน�น ในข�นตอนน�จะเปนการออกแบบโครงสรางของฟลดท�จาเปนของตารางท�ง 2 กลมน�น
ซ�งอาจจะประมวลเปน 2 วธ ดงน�
LOGO15
ซ�งอาจจะประมวลเปน 2 วธ ดงน�
1. การออกแบบแบบจาลองหลายมตจากขอมลการวเคราะหในแนวทางของท�ง Query oriented approach และ Business oriented approach
2. การออกแบบแบบจาลองหลายมตจาก ER-diagram
การออกแบบคลงขอมล จาก ER-diagram
Step 0: เพ�มตารางขอมลมตขอมลท�เก�ยวกบเวลา
Step 1: จาแนกประเภทของ entities
Step 2: กาหนดลาดบช�นของขอมล
Step 3: การออกแบบมตของขอมล
LOGO16
Step 3: การออกแบบมตของขอมล
Step 4: การออกแบบ Schema
Step 1: การจาแนกประเภทของ Entities
1. Transaction entities
คอตารางท�เกบขอมลท�เก�ยวของกบเหตการณตางๆ ท�เกดข�นในองคกร
อนไดแก
- ขอมลท�เก�ยวกบการทาธรกรรมตางๆ ท�เกดข�นในองคกร
(business transaction)
LOGO17
(business transaction)
- ขอมลท�เก�ยวกบเหตการณท�เกดข�นในองคกร
ส�งสาคญคอ แตละจดของขอมลจะมความสมพนธกบเวลา
Step 1: การจาแนกประเภทของ Entities
2. Component entities
คอตารางท�เกบขอมลคาอธบายของฟลดบางฟลด ในตารางท�จดอยในประเภท Transaction entities
โดยสวนใหญความสมพนธระหวางตารางในกลม Component entities กบ Transaction entities มนอยในรป 1-M
LOGO18
Transaction entities มนอยในรป 1-M
นอกจากน�ขอมลท�จดเกบอยในตารางในกลม Component entities น�มกใชสาหรบแทนความหมายของ ใคร, อะไร, ท�ไหน, อยางไร
ดงน�น ตารางขอมลมตขอมลท�เก�ยวกบเวลา ท�เพ�มใน Step 0 กถอวาเปน Component entity ประเภทหน�ง
Step 1: การจาแนกประเภทของ Entities
3. Classification entities
คอตารางท�เกบความหมายของตารางท�อยในกลมของ Component entities
โดยสวนใหญความสมพนธระหวางตารางในกลม Classification entities กบ Component entities มนอยในรป 1-M
ขอมลของตารางในกลมน� สามารถนามาใชสาหรบการจดลาดบช�น (Hierarchy)
LOGO19
ขอมลของตารางในกลมน� สามารถนามาใชสาหรบการจดลาดบช�น (Hierarchy) ของขอมล
ในบางกรณ ตารางใดตารางหน�งอาจจาแนกอยใน entities ไดหลายประเภท ดงน�งจงตองมการจดลาดบความสาคญของประเภท entities
Step 2: การกาหนดลาดบช�นของขอมล
ในข�นตอนน� เปนข�นตอนท�สาคญในการสรางแบบจาลองมตของขอมล (Dimensional model)
การกาหนดลาดบช�นของขอมล หมายถง การกาหนดระดบความละเอยดของการประมวลผลขอมลสารสนเทศ
LOGO20
ถาหากจดเกบขอมลท�มการจาแนกขอมลสรปท�ละเอยดมากๆ ไวในฐานขอมล จะทาใหส�นเปลองพ�นท�ในการจดเกบ
แตในขณะเดยวกน ถาไมจดเกบขอมลท�ละเอยดไว ขอมลในสวนท�ถกยบหรอสรปรวม กจะสญหาย ไมสามารถเรยกคนได
Step 3: การสรางแบบจาลองมตขอมล
ข�นตอนท� 1 เลอกความสมพนธในรปลาดบช�นของขอมลท�สรปไวใน Step 2 มาพจารณาทละความสมพนธ
ข�นตอนท� 2 ทาการกาหนดฟลดใหกบ Component entities โดยการยบลาดบช�น
ข�นตอนท� 3 จาก Component entities ท�พบในข�นตอนท� 2 ใหพจารณา
LOGO21
ข�นตอนท� 3 จาก Component entities ท�พบในข�นตอนท� 2 ใหพจารณาความสมพนธในลาดบช�นตอไป
ข�นตอนท� 4 ทาการเลอกความสมพนธในรปลาดบช�นของขอมลท�สรปไวใน Step 2 มาพจารณาเพ�มเตม จนกระท�งพจารณาทกความสมพนธ
Step 4: การออกแบบ Schema
ในท�น�สามารถแบงวธการออกแบบ Schema ออกไดเปน 2 แบบ คอ
4.1 Star schema
4.2 Snowflake schema
LOGO22
4.2 Snowflake schema
(**ไดจากการทา Normalizing Star schema)
Step 4: การออกแบบ Schema
4.1 Star schema สามารถสรางมาไดจาก ER diagram ดงน�
ตาราง Fact ตารางประเภทน�สามารถสรางมาจากตารางท�ถกจดใหอยในประเภท Transaction entities โดยคยหลกของตารางน�จะเปนคยท�ประกอบมาจากคยหลกของตารางประเภท Component entities
ตาราง Dimension ตารางประเภทน�สามารถสรางมาจากตารางท�ถกจดให
LOGO23
ตาราง Dimension ตารางประเภทน�สามารถสรางมาจากตารางท�ถกจดใหอยในประเภท Component entities
เกณฑ (Measure) คอขอมลสรปของแตละตาราง Fact ซ�งขอมลเหลาน� มกเปนเปาหมายและวตถประสงคขององคกร
Step 4: การออกแบบ Schema
4.2 Snowflake schema สามารถสรางมาไดจาก ER diagram ดงน�
โดยสามารถสรางจาก Star schema ดวยการแตกการยบรวมลาดบช�น หรอ Normalizing
ตาราง Fact ตารางประเภทน�สามารถสรางมาจากตารางท�ถกจดใหอยในประเภท Transaction entities โดยคยหลกของตารางน�จะเปนคยท�รวมคย
LOGO24
ประเภท Transaction entities โดยคยหลกของตารางน�จะเปนคยท�รวมคยอ�นๆ ท�อางถง Component entities
ตาราง Dimension ตารางประเภทน�สามารถสรางมาจากตารางท�ถกจดใหอยในประเภท Component entities
**ลาดบช�นของตาราง Dimension ยงคงอย
สรป: Step 4
Snowflake schema เปนวธการออกแบบท�ไมพงประสงคนก เน�องจากในข�นตอนของการดงขอมลจากคลงขอมล เพ�อนามาวเคราะหแบบ Online น�น จะเปนตองทาการ Join ตารางมากมาย เพ�อใหสรางรายงานไดตรงตามความตองการ
LOGO25
การกระจายขอมลออกเปนลาดบช�นน�น มขอดคอ เขาใจงาย สาหรบผท�มพ�นฐานการออกแบบฐานขอมลปฏบตการประจาวน (OLTP database)
การออกแบบคยของตาราง
คยหลกของตาราง Dimension และตาราง Fact ในคลงขอมล มกจะถกกาหนดคยหลกข�นมาใหมแทนท�คยหลกเดม ท�เรยกวา Business keyท�งน� เน�องจาก
ขอมลท�นามาเกบรวบรวมในคลงขอมล มกเปนขอมลท�มาจากหลายแหลง ซ�งมโอกาสท�คย/ขอมลแตละแหลงอาจมมาตรฐานในการ
LOGO26
ขอมลท�นามาเกบรวบรวมในคลงขอมล มกเปนขอมลท�มาจากหลายแหลง ซ�งมโอกาสท�คย/ขอมลแตละแหลงอาจมมาตรฐานในการจดเกยไมเหมอนกน
คยหลกในตาราง Fact มกเปนคยท�ประกอบดวยคยจานวนมาก ทาใหเกดการเสยเวลาในการทา index ขอมล
การออกแบบคยของตาราง
LOGO27
LOGO
28
Do you have any Question ??