dataware house lecture 5.1

Document Sample
dataware house lecture 5.1 Powered By Docstoc
					        บทที่ 5 การสร้างแบบจาลองมิติต่างๆ
                (Dimensional modeling)

          หลังจากทาการเก็บรวบรวมความต้องการจากผู้ใช้แล้ว เราจะทาการสร้างโครงสร้างและความสัมพันธ์
ของข้อมูลสาหรับคลังข้อมูลโดยการรวมข้อมูลต่างๆเข้าด้วยกัน โดยที่การทางานจะเริ่มจากการเก็บรวบรวม
ความต้องการจากผู้ใช้ซึ่งเราจะได้เอกสารที่บ่งบอกถึงรายละเอียดของความต้องการและไดอะแกรมแพคเกจ
ข้อมูลที่ประกอบไปด้วยตัวชี้วัดต่างๆและมิติทางธุรกิจที่เกี่ยวข้องกับตัวชี้ วัดความสาเร็จของการดาเนินธุรกิจ
นั้ น ๆ เมื่ อ เราได้ แ พคเกจข้ อ มู ล แล้ ว เราจะสามารถออกแบบและท าการสร้ า งแบบจ าลองมิ ติ ต่ า งๆ
(dimensional model) ที่สามารถตอบคาถามต่างๆจากผู้ใช้ได้ สามารถจัดการเกี่ยวกับมุมมองต่างๆทางธุรกิจ
ได้ สามารถแสดงแนวโน้มทางธุรกิจได้เป็นต้น
          เมื่ อ เราทาการพิ จ ารณาไดอะแกรมแพคเกจข้ อ มู ล ต่ า งๆที่ ป ระกอบไปด้ ว ย (1) ตั ว ชี้ วั ด ต่ า งๆ
(measurements or metrics) (2) มิติทางธุรกิจ (business dimensions) และ (3) แอทริบิวต่างๆสาหรับแต่
ละมิติทางธุรกิจ (attributes for each business dimensions) เราจะต้องทาการตรวจสอบหรือกาหนด
ข้อมูลที่จะใช้สาหรับสร้าง dimensional model ที่ประกอบไปด้วยสิ่งต่างๆดังนี้

     ทาการเลือกหัวข้อต่างๆ (subjects) จากไดอะแกรมแพคเกจข้อมูลที่มีเพื่อทาการออกแบบโครงสร้าง
      ทางตรรกะ
     ทาการกาหนดระดับของความละเอียดของข้อมูลที่จะถูกเก็บอยู่ใน dimensional model
     ทาการเลือก business dimension (เช่น รายการสินค้า ลูกค้า เวลา เป็ นต้น) ที่จะถูกรวมไว้ใน
      dimensional model จากนั้นทาการตรวจสอบว่าข้อมูลแต่ละส่วนที่มาจากแต่ละ business
      dimension นั้นมีความสอดคล้องกับข้อมูลส่วนอื่นๆ
     ทาการเลือกเลือกตัวชี้วัดหรือหน่วยของการวัดที่จะถูกรวมไว้ใน dimensional model
     ทาการกาหนดระยะเวลาที่จะใช้เก็บข้อมูลย้อนหลัง
          หลังจากที่เราทาการเลือกและกาหนดสิ่งต่างๆในขั้นตอนเริ่มต้นแล้ว เราจะทาการพิจารณาไดอะแกรม
แพคเกจข้อมูลอีกครั้งหนึ่ ลองพิจารณาไดอะแกรมแพคเกจข้อมูลการขายรถยนต์ของบริษัทผู้ผลิตรถยนต์ในรูป
ที่ 5-1 ซึ่งประกอบไปด้วยตัวชี้วัดต่างๆมากมาย อาทิเช่น ราคาขายสินค้า(actual sale price) ที่เป็นค่าความ
จริงที่บ่งบอกถึงราคาขายจริงๆ เป็นต้น ซึ่งจากตัวชี้วัด (measure) หรือความจริง (fact) จากไดอะแกรม
แพคเกจข้อมูลเราสามารถสร้างตารางสาหรับเก็บข้อมูลตัวชี้วัดเหล่านั้นที่เรียกว่า fact table (ดังแสดงในรูปที่
5-1) หลังจากทาการพิจารณาเกี่ยวกับตัวชี้วัดทั้งหมดแล้ว ขั้นตอนต่อไปจะทาการพิจารณาแต่ละมิติทางธุรกิจ
                                                                                                 1|Page
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
(business dimension) ที่ถูกเก็บอยู่ในไดอะแกรมแพคเกจข้อมูล ซึ่งจากไดอะแกรมแต่ละมิติจะมีรายละเอียด
ของข้อมูลเก็บไว้ ซึ่งรายละเอียดของข้อมูลอาจจะอยู่ในรูปแบบของลาดับชั้นของข้อมูล (hierarchy) หรือ
หมวดหมู่ของข้อมูล (category) เมื่อพิจารณาแต่ละมิติทางธุรกิจ เราจะต้องทาการสร้างตารางสาหรับจัดเก็บ
ข้อมูลสาหรับแต่ละมิติทางธุรกิจที่เรียกว่า dimension table




     รูปที่ 5-1 การสร้าง fact table สาหรับการขายรถยนต์ของบริษัทผู้ผลิตรถยนต์จากแพคเกจข้อมูล
          จากรูปที่ 5-1 เมื่อเราทาการพิจารณามิติรายการสินค้า (product dimension) เราจะสามารถสร้าง
ตารางสาหรับจัดเก็บข้อมูลในมิติรายการสินที่เรียกว่า product dimension table ได้ดังแสดงในรูปที่ 5-2 ซึ่ง
จากรูปตารางที่สร้างขึ้นสาหรับมิติรายสินค้าจะมีข้อมูลรายละเอียดเหมือนกันกับรายละเอียดของมิติรายการ
สินค้าในไดอะแกรมแพคเกจข้อมูล เมื่อเราทาการสร้างตารางของทุกมิติทางธุรกิจในไดอะแกรมแพคเกจข้อมูล
แล้ว เราจะได้ 1 fact table ที่เก็บข้อมูลตัวชี้วัดจากไดอะแกรมแพคเกจข้อมูล และ กลุ่มของ dimension
table ที่เก็บข้อมูลรายละเอียดสาหรับแต่ละมิติทางธุรกิจ จากนั้นเราจะทาการประกอบหรือเชื่อมต่อตารางทั้ง
2 ชนิดเข้าด้วยกันเพื่อสร้างเป็น dimensional model ต่อไป ซึ่งเมื่อทาการเชื่อมต่อกันแล้ว เราจะสามารถ
วิเคราะห์ข้อมูลจากมิติทางธุรกิจหนึ่งๆ หรือข้ามมิติก็ได้ โดยใช้แอทริบิวต่างๆใน dimension table เพื่อให้
เข้าใจเกี่ยวกับคิวรีที่ใช้ในการถามคาถามมากขึ้น ลองพิจารณาตัวอย่างคิวรีสาหรับถามคาถามเกี่ยวกับยอดขาย
รถยนต์ของบริษัทผู้ผลิตรถยนต์ที่จะถามว่า “ยอดขายรถ Jeep Cherokee รุ่นปี 2007 ที่ขายได้ที่ BigSam
Auto dealer โดยทาการขายให้กับลูกค้าที่มีบ้า นไปเป็นของตัวเอง และ ซื้อแบบผ่อนชาระเพียงแค่ 3 ปี กับ
บริษัท Daimler-Chrysler” ซึ่งผู้ใช้จะต้องการยอดเกี่ยวกับ actual sale price, MSRP แลพ Full price ด้วย
                                                                                          2|Page
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
ซึ่งจากคิวรีข้างต้นเราต้องทาการวิเคราะห์ข้อมูลตัวชี้วัดจาก fact table ที่เกี่ยวข้องกับแอทริบิวต่างๆใน
หลายๆมิติทางธุรกิจด้วยกัน ซึ่งแต่ละแอทริบิวจะทาหน้าที่เสมือนเงื่อนไขที่ใช้สาหรับกรองข้อมูลที่เกี่ยวข้องกับ
คาถามจากคิวรี




       รูปที่ 5-2 การสร้าง dimension table สาหรับมิติต่างๆทางธุรกิจที่เกี่ยวข้องกับการขายรถยนต์
      จากการวิเคราะห์ ดังกล่าว จะเห็นว่าเราจะต้องทาการจัดการเชื่อมความสัมพันธ์ระหว่าง fact และ
dimension table ใน dimensional model โดยการพิจารณาเกณฑ์ต่างๆดังต่อไปนี้

     หลังจากการเชื่อมต่อความสัมพันธ์แล้ว ผู้ใช้ควรจะสามารถเข้าถึงข้อมูลใน dimensional model ได้
      อย่างรวดเร็วที่สุด
     หลังจากการเชื่อมต่อความสัมพันธ์แล้ว dimensional model จะต้องให้สามารถให้บริการเกี่ยวกับ
      การวิเคราะห์และการค้นคืนข้อมูลให้กับคิวรีได้อย่างดีที่สุด
     หลังจากการเชื่อมต่อความสัมพันธ์แล้ว เราจะสามารถเห็นความสัมพันธ์ของระหว่าง dimension
      table กับ fact table ได้
     หลังจากการเชื่อมต่อความสัมพันธ์แล้ว จะทาให้ dimension table ใน dimensional model นั้น
      สามารถเชื่อมต่อกับ fact table ได้อย่างเท่าเทียมกัน

                                                                                              3|Page
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
     หลังจากการเชื่อมต่อความสัมพันธ์แล้วจะทาให้ผู้ใช้สามารถเรียกดูข้อมูลแบบเจาะลึก (drill down)
      และแบบสรุปรวบยอด (roll up) ได้ผ่านทางลาดับชั้นต่างๆทางลาดับชั้นของแต่ละ dimension
      table
    จากเงื่อนไขดังกล่าวเราจะเห็นว่าการวาง fact table ไว้ตรงกลางแล้วนา dimension table ต่างๆมา
ล้อมรอบ fact table จะทาให้เราได้ dimensional model ที่ตรงตามเงื่อนไขทั้งหมด การเชื่อมต่อดังกล่าวจะ
ทาให้แต่ละ dimension table จะมีความสัมพันธ์โดยตรงกับ fact table และมีรูปร่างคล้ายกับดาวที่มี fact
table อยู่ในตาแหน่งใจกลางดาว และ แต่ละ dimension table อยู่ที่แต่ละมุมของดาว ซึ่งเราจะเรียก
dimensional model ที่มีลักษณะคล้ายดาวว่า Star schema ดังแสดงในรูปที่ 5-3




                                    รูปที่ 5-3 ตัวอย่าง star schema

Star schema
           จากส่วนที่แล้วเราจะเข้าใจถึงแบบจาลองมิติต่างๆ (dimensional model) และส่วนประกอบต่างๆ
ของแบบจาลองมิติต่างๆ star schema ก็เป็นแบบจาลองมิติต่างๆชนิดหนึ่งที่ไม่ซับซ้อนและง่ายที่จะเข้าใจ
star schema จะประกอบไปด้วย 1 fact table ที่แสดงถึงหัวข้อทางธุรกิจที่เราสนใจ และ หลาย dimension
table ที่สอดคล้องกับ fact table นั้นๆ (อย่างที่เราทราบกันดีว่า fact table จะประกอบไปด้วยมาตรวัด
ความสาเร็จของหัวข้อการดาเนินธุรกิจที่เราสนใจ) ดังนั้นจากส่วนประกอบของ star schema เราสามารถ
สร้างแบบจาลองมิติต่างๆได้โดยจัดวาง fact table ไว้ตรงกลางแล้วทาการล้อมรอบ fact table ด้วย
dimension table ต่างๆ ดังแสดงในรูปที่ 5-4 ซึ่งแสดงถึง star schema อย่างง่ายสาหรับการวิเคราะห์การ
สั่งซื้อสินค้าที่ประกอบไปด้วย 1 fact table ที่มีมาตรวัดเป็น จานวนเงินในการสั่งซื้อสินค้า ค่าใช้จ่าย ผลกาไร
และ จานวนชิ้นสินค้าที่ถูกสั่งซื้อ และประกอบไปด้วย 4 dimension table ที่เกี่ยวข้องกับรายการสินค้า


                                                                                              4|Page
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
(product dimension table) ลูกค้า (customer dimension table) วันที่ทาการสั่งซื้อสินค้า (order date
dimension table) และ พนักงานขาย(salepersondimension table)




                     รูปที่ 5-4 star schema อย่างง่ายสาหรับการวิเคราะห์การสั่งซื้อสินค้า
        จากส่วนประกอบต่างๆของ star schema ดังรูป ผู้ใช้สามารถวิเคราะห์ข้อมูลผ่านทางมาตรวัด
ความสาเร็จต่างๆ (จานวนเงินในการสั่งซื้อสินค้า ค่าใช้จ่าย ผลกาไร และ จานวนชิ้นสินค้าที่ถูกสั่งซื้อ) โดยทา
การแบ่งแยกความสนใจตามลักษณะของข้อมูลลูกค้า รายการสินค้า วันเวลาที่สั่งซื้อสินค้า และ พนักงานขาย
ซึ่งจะทาให้ผู้ใช้สามารถทราบถึงการเกิดขึ้นของการสั่งซื้อสินค้าว่า อะไรถูกสั่งซื้อไป ซื้อไปเมื่อไหร่ โดยใครเป็น
คนซื้อ และใครเป็ นคนขาย เป็นต้น ซึ่งจากข้อมูลที่ผู้ ใช้ทราบ ผู้ใช้จะสามารถจินตนาการได้ถึงคาตอบของ
คาถามต่อไปนี้ เมื่อผู้ใช้ทราบถึงจานวนเงินในการสั่งซื้อสินค้า ผู้ใช้จะทราบได้ว่า (1) สินค้าอะไรถูกขายไป (2(
ใครเป็นผู้ซื้อ (3) ใครเป็นคนขายสินค้า และ (4) สินค้าถูกซื้อเมื่อไหร่ เป็นต้น
            การที่จะทราบถึงข้อมูลต่างๆข้างต้น ผู้ใช้จะต้องทาการกาหนด/สร้างคิวรีที่เกิดจากการรวมกันหรือ
เชื่อมต่อกันของ dimension ต่างๆเข้ากับ fact table ซึ่งจะเป็นการค้นหาแถวของข้อมูลใน fact table ที่มี
ความสัมพันธ์กับแถวของข้อมูลต่างๆในแต่ละ dimension table ลองพิจารณาตัวอย่างของคิวรีอย่างง่ายที่
สามารถค้นหาข้อมูลใน star schema จากรูปที่ 5-4 ที่ซึ่งพนักงานฝ่ายการตลาดอาจจะต้องการจานวนชิ้น
สิ น ค้าที่ ถูกสั่ งซื้ อ และ จ านวนเงิน ของการสั่ งซื้ อสิ นค้า ชนิด “bigpart-1” ที่ถูกซื้ อโดยลู กค้าที่อ ยู่ในรั ฐ
“Maine” ขายโดยนาย “Jane Doe” ในช่วงเดือนมิถุนายน จากคิวรีดังกล่าวผู้ใช้ได้ทาการกาหนดเงื่อนไข
ต่างๆ ที่เกี่ยวข้องกับแต่ละ dimension table (ดังแสดงในรูปที่ 5-5) และทาการเรียกดูข้อมูลที่เกี่ยวกับมาตร
วัดจานวนชิ้นสินค้าที่ถูกสั่งซื้อ และ จานวนเงินของการสั่งซื้อสินค้าเป็นต้น




                                                                                                        5|Page
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
                       รูปที่ 5-5 ตัวอย่างการกาหนดคิวรีเพื่อเรียกดูข้อมูลจาก star schema
          นอกจากการสร้างคิวรีแบบปกติแล้ว ผู้ใช้ยังสามารถเรียกดูข้อมูลแบบเจาะลึก (drilling down) ได้อีก
ด้วย การเรียกดูข้อมูลแบบเจาะลึกจะเป็นการแยกข้อมูลที่เป็นผลสรุปออกเป็นส่วนๆ โดยเริ่มแรกผู้ใช้อาจทา
การเรี ย กดู ข้ อ มู ล ที่ เ ป็ น ผลสรุ ป จากนั้ น จ าการแยกส่ ว นของข้ อ มู ล ตามที่ ผู้ ใ ช้ ก าหนด ซึ่ ง จะได้ ข้ อ มู ล ที่ มี
รายละเอียดมากขึ้นตามที่ผู้ใช้ต้องการ ลองพิจารณาตัวอย่างที่ แสดงในรูปที่ 5-6 ที่แสดงถึงการเรียกดูข้อมูล
แบบเจาะลึกจากผู้ใช้ โดยเริ่มแรกผู้ใช้อาจจะต้องการเรียกดูข้อมูลจานวนสินค้ายี่ห้อ “big parts” ที่ขายได้ในปี
2008 ซึ่งเป็นยอดขายในภาคตะวันออกเฉียงเหนือ ต่อมาผู้ใช้จะต้องการข้อมูลที่เจาะลึกมากขึ้น โดยทาการ
แยกยอดขายในปี 2008 ออกเป็นแต่ละไตรมาส และยังสามารถแยกรายการสินค้าจากยี่ห้อสินค้าไปเป็นแต่ละ
รายการสินค้าของยี่ห้อ “big parts” ได้อีกด้วย และท้ายสุดผู้ใช้อาจจะเจาะลึกไปยังยอดขายในแต่ละเมืองทาง
แถบตะวันออกเฉียงเหมือนเป็นต้น จากความต้องการเรียกดูข้อมูลดังกล่าว เราจะเห็นว่า ข้อมูลที่ทาการเรียกดู
จะมีความละเอียดของข้อมูลในแต่ละมิติที่มีความแตกต่างกัน ซึ่งการเรียกดูในลักษณะนี้เราจะเรียกว่า การ
เรียกดู/สิเคราะห์ข้อมูลแบบเจาะลึก (drill down analysis) ที่จะสามารถเรียกดูข้อมูลได้จาก star schema
ที่เราสร้างขึ้น




                                                                                                                   6|Page
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
                    รูปที่ 5-6 ตัวอย่างการเรียกดูข้อมูลแบบเจาะลึกจาก star schema
          หลังจากทราบโครงสร้างพื้นฐานของ star schema ที่ประกอบไปด้วย fact table และ dimension
table ต่างๆที่เกี่ยวข้องกับ fact table รวมถึงประเภทของคิวรีที่ใช้ในการเรียกดูข้อมูลจาก star schema
แล้ว เพื่อให้เข้าใจในรายละเอียดของ star schema ลองพิจารณาถึงส่วนประกอบและรายละเอียดของ fact
table และ แต่ละ dimension table ที่มีส่วนประกอบต่างๆดังนี้

Dimension table
         ใน star schema จะประกอบไปด้วย dimension table ต่างๆซึ่ง แต่ละ dimension จะแสดงถึงมิติ
ทางธุรกิจที่เกี่ยวเนื่องกับการดาเนินธุรกิจ แต่ละ dimension จะประกอบไปด้วยส่วนต่างๆดังแสดงในรูปที่
5-7 ซึ่งจะประกอบไปด้วย (1) คีย์หลักที่เป็นตัวบ่งชี้ที่เป็นเอกลักษณ์ (uniquely identifiers)ที่ใช้สาหรับแยก
ความแตกต่างระหว่างข้อมูลแต่ละแถวใน dimension table (2) คอลัมน์/แอทริบิวต่างๆซึ่งโดยส่วนใหญ่แล้ว
อยู่ในรูปแบบของตัวอักษรหรือตัวเลขที่ไม่ใช้สาหรับการคานวณ และมีจานวนไม่เกิน 50 คอลัมน์ด้วยกัน โดยที่

                                                                                             7|Page
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
แต่ละแอทริบิวอาจะไม่ได้เกี่ยวเนื่องกับแอทริบิวอื่นๆโดยตรง เช่น ขนาดแพคเกจของสินค้า จะไม่ได้เกี่ยวข้อง
โดยตรงกับยี่ห้อสินค้าที่เก็บอยู่ใน dimension table




                              รูปที่ 5-7 ส่วนประกอบของ dimension table
แอทริบิวต่างๆใน dimension table จะมีคุณสมบัติหรือคุณลักษณะเด่นๆดังนี้

     แอทริบิวหนึ่งๆจะไม่ได้เกี่ยวเนื่องกับแอทริบิวอื่นๆโดยตรง เช่น ขนาดของแพคเกจสินค้าอาจจะไม่ได้
         ่
      เกียวข้องกับยี่ห้อสินค้าโดยตรง แต่ทั้งสองแอทริบิวจะถูกเก็บอยู่ใน dimension table
     แอทริบิวใน dimension table จะไม่ถูกนอร์มอลไลซ์ (normalized) เนื่องจากในการค้นหาคาตอบ
      ให้กับคิวรีของผู้ใช้จะมีการเรียกใช้ข้อมูลจากแอทริบิวต่างๆซ้าๆ        ดังนั้นเพื่อให้การค้นคืนผลลัพธ์มี
      ประสิทธิภาพ เราควรจะสามารถเรียกใช้ข้อมูลจากแอทริบิวต่างๆของ dimension table ได้โดยตรง
      แล้วจึงนาผลลัพธ์ที่ได้ไปทาการค้นหาข้อมูลที่เกี่ยวข้องใน fact table ต่อไป ถ้าเราทาการนอร์มอล
      ไลซ์ข้อมูลในแอทริบิวต่างๆของ dimension table จะเป็นการลดทอนประสิทธิภาพของการค้นคืน
      ข้อมูลให้กับคิวรีต่างๆ ดังนั้นเราไม่ควรจะทาการนอร์มอลไลซ์ข้อมูลในแต่ละแอทริบิวของ dimension
      table เพื่อให้การค้นคืนผลลัพธ์ให้กับคิวรีจากผู้ใช้มีประสิทธิภาพ
     แอทริบิวใน dimension table จะต้องถูกเก็บข้อมูลเป็นลาดับชั้น (hierarchy) เพื่อทาให้ผู้ใช้สามารถ
      เรียกดูรายละเอียดของข้อมูลแบบเจาะลึก (drilling down) และแบบสรุปรายละเอียด (rolling up)
      ได้ ตัวอย่างเช่น เราทาการจัดเก็บ 3 แอทริบิว คือ รหัสไปรษณีย์ ชื่อเมือง และ ชื่อรัฐ ไว้ใน
      dimension table โดยทั้ง 3 แอทริบิวมีความเกี่ยวเนื่องกันโดยอยู่ในลาดับชั้นเดียวกันซึ่งการเก็บ
      ข้อมูลในลักษณะนี้จะยอมให้ผู้ใช้สามารถเรียกดูข้อมูลยอดขาย (ข้อมูลจาก fact table ที่เกี่ยวเนื่อง
      กับ dimension table) แบบเจาะลึก โดยการเรียกดูยอดขายในรัฐหนึ่งๆ จากนั้นทาการเจาะลึกไป
      เป็นยอดขายในเมืองหนึ่งๆ และ ยอดขายในเขตรหัสไปรษณีย์หนึ่งๆเป็นต้น สาหรับการเรียกดูข้อมูล
      แบบสรุปรายละเอียด            โดยเริ่มจากการเรียกดูข้อมูลที่มีความละเอียดที่สุดคือ      ยอดขายในเขต
      รหัสไปรษณีย์หนึ่งๆ แล้วทาการรวมยอดขายเป็น ยอดขายในเมืองหนึ่งๆที่มีหลายรหัสไปรษณีย์ และ
      ยอดขายในรัฐหนึ่งๆที่มีหลายเมืองได้

                                                                                                8|Page
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
    ใน dimension table อาจจะมีแอทริบิวที่เป็นลาดับชั้นหลายลาดับชั้นด้วยกัน เช่น ใน product
                                                        ้
     dimension table อาจมี 2 ลาดับชั้น คือ 1) ลาดับชันของรายการสินค้า และหมวดหมู่สินค้าใน
     มุมมองของการตลาด (รายการสินค้า A หมวดหมู่ X เป็นต้น) และ 2) ลาดับชั้นของรายการสินค้า
     และ หมวดหมู่สินค้าในมุมมองของการเงิน (รายการสินค้า A หมวดหมู่สินค้าสร้างรายได้ หมวดหมู่
     สินค้าขายดี เป็นต้น)
    จานวนเรคคอร์ดหรือแถวของข้อมูลใน dimension table จะมีจานวนน้อยกว่าใน fact table
     ค่อนข้างมาก ตัวอย่างเช่น product dimension table ของบริษัทผู้ผลิตรถยนต์อาจมีข้อมูลรายการ
     รถยนต์ที่ทาการผลิตเพียง 500 เรคคอร์ด แต่ในขณะที่ fact table อาจมียอดขายรถยนต์เป็นจานวน
     หลายล้านเรคคอร์ด เป็นต้น

Fact table
        หลังจากทราบรายละเอียดของ dimension table ที่อยู่ใน star schema หนึ่งๆแล้ว ลองพิจารณา
รายละเอียดและคุณลักษณะของ fact table ที่จะประกอบไปด้วยมาตรวัดความสาเร็จต่างๆของการดาเนิน
ธุรกิจในหัวข้อที่เราสนใจ และส่วนประกอบอื่นๆดังรูปที่ 5-8 จากรูปเราสามารถแจกแจงส่วนประกอบและ
คุณสมบัติของ fact table ได้ดังนี้




                              รูปที่ 5-8 ส่วนประกอบของ fact table

    คีย์ที่มาจากการเรียงต่อกันของคีย์หลักของ dimension table— เนื่องจากข้อมูลในแต่ละเรคคอร์ด
     ของ fact table จะเกิดจากการรวมกันของทุก dimension table ซึ่งจากรูปที่ 5-8 จะประกอบไป
     ด้ว ย 4 dimension ด้ว ยกัน คือ รายการสิ นค้า วันที่สั่งสิ นค้า ลูกค้า และ พนักงานขาย ถ้า
     dimension เหล่านี้มีการเก็บข้อมูลที่มีความละเอียดสูงสุด นั่นคือ ข้อมูลของแต่ละรายการสินค้า
     ข้อมูลของแต่ละวัน ข้อมูลของแต่ละรายชื่อลูกค้า ข้อมูลของแต่ละพนักงานขายสินค้า เป็นต้น จาก
     ความละเอียดของข้อมูลดังกล่าว ข้อมูลแถวหนึ่งๆใน fact table จะต้องเกี่ยวข้องกับ รายการสินค้า
     หนึ่งๆ ที่ถูกซื้อในวันหนึ่ง โดยลูกค้าคนหนึ่ง และ ขายโดยพนักงานขายคนหนึ่ง ซึ่งเราสามารถระบุถึง
                                                                                       9|Page
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
     ข้อมูลเรคคอร์ดนั้นได้ โดยนาคีย์หลักของทุกๆ dimension table มาต่อกัน แล้วทาการสร้างเป็นคีย์
     หลักของข้อมูลเรคคอร์ดนั้นๆใน fact table
    ข้อมูลมาตรวัด (measurement/metrics) ใน fact table นั้นจะมีความละเอียดที่แตกต่างกัน ซึ่งจะ
     ให้ข้อมูลที่แตกต่างกันออกไปด้วย ตัวอย่างเช่น ถ้าข้อมูลมาตรวัดจานวนสินค้าที่ขายได้มีความละเอียด
     สูง จะทาให้เราสามารถทราบถึงจานวนชิ้นสินค้าชนิดหนึ่งๆที่ขายได้ในวันหนึ่งๆ โดยลูกค้าคนหนึ่งๆ
     และพนักงานขายคนหนึ่งๆ แต่ถ้าเราเปลี่ยนความละเอียดของข้อมูลให้น้อยลง เช่น เราทาการเก็บ
     ข้อมูลยอดขายของรายการสินค้าหนึ่งที่ขายได้ในเดือนหนึ่งๆ จะทาให้เราได้ข้อมูลที่เป็นผลสรุปมากขึ้น
     เมื่อเราทาการเก็บ ข้อมูล ที่มีร ายละเอียดสู งจะทาให้ ผู้ ใช้ส ามารถเรียกดูข้อมูล แบบเจาะลึ ก (drill
     down) และ แบบสรุปรายละเอียด (roll up) ได้อย่างมีประสิทธิภาพ ข้อดีอีกข้อหนึ่งของการเก็บ
     ข้อมูลที่มีความละเอียดสูงคือความคงทนต่อการเปลี่ยนแปลงของข้อมูลในรูปแบบต่างๆ เช่น ถ้าเรา
     ต้องการเพิ่มแอทริบิวใหม่ที่เกี่ยวกับเขตที่พนักงานขายสังกัดอยู่เข้าไปใน sale representative
     dimension การเพิ่มนี้ไม่ก่อให้เกิดการเปลี่ยนแปลงต่อ fact table เนื่องจากข้อมูลแต่ละเรคคอร์ดใน
     fact table สามารถสื่อถึงพนักงานขายแต่ละรายได้อยู่แล้ว ดังนั้นในการกาหนดคิวรีโดยผู้ใช้จะไม่มี
     การเปลี่ยนแปลงตามไปด้วย อีกกรณีหนึ่งคือ ถ้าเราต้องการที่จะเพิ่มมิติทางธุรกิจใหม่เข้าไปใน star
     schema คือ promotion dimension table จะทาให้เราจะต้องทาการปรับแต่งเรคคอร์ดใน fact
     table ใหม่เพื่อให้แต่ละเรคคอร์นั้นรวมข้อมูลเกี่ยวกับโปรโมชันเข้าไปด้วย ซึ่งการแก้ไขเรคคอร์ดต่างๆ
     ใน fact table จะไม่ทาให้ความละเอียดของข้อมูลเปลี่ยนไปแต่อย่างใด ความละเอียดของข้อมูลใน
     fact table ยังคงเป็นรายละเอียดสูงสุดเหมือนเดิม และ การกาหนดคิวรียังคงเดิมถ้าเราไม่ได้สนใจ
     โปรโมชันในการสืบค้นข้อมูล นอกจากนี้เรายังสามารถนาเอาข้อมูลที่มีรายละเอียดสูงไปเป็นอินพุต
     ของโมเดลทางด้านการทาเหมืองข้อมูล (data mining) ที่ต้องการข้อมูลที่มีรายละเอียดสูงได้อีกด้วย
                จากที่กล่าวมาทั้งหมดคือข้อดีของการที่ fact table มีข้อมูลที่มีรายละเอียดสูง แต่อย่างไรก็ดี
     การที่มีรายละเอียดสูงก็แลกมาด้วยการสิ้นเปลืองเนื้อที่สาหรับจัดเก็บข้อมูล และ ความยุ่งยากในการ
     ดูแลรักษาข้อมูลใน fact table ที่จะเพิ่มขึ้น การที่ fact table มีรายละเอียดสูงจะทาให้ fact table
     มีจานวนเรคคอร์ดเป็นจานวนมาก และ เมื่อผู้ใช้ต้องการข้อมูลที่เป็นผลสรุปการสืบค้นข้อมูลอาจจะใช้
     เวลานาน ดังนั้นเราอาจจะต้องสร้างตาราง fact table ที่เป็นผลลสรุปของข้อมูลขึ้นมาใหม่เพื่อทาให้
     ผู้ใช้สามารถค้นหาข้อมูลที่เป็นผลสรุปได้รวดเร็วมากขึ้น แต่อย่างไรก็ดีจะทาให้สิ้นเปลืองพื้นที่สาหรับ
     จัดเก็บข้อมูลมากขึ้นไปอีก
    แอทริบิว/มาตรวัดบางตัวจะมีคุณสมบัติเป็น fully additive measuresซึ่งเป็นมาตรวัดที่สามารถทา
     การรวบยอดข้อมูลได้ ตัวอย่างเช่น มาตรวัดยอดเงินการสั่งซื้อสินค้า ค่าใช้จ่าย และ จานวนชิ้นสินค้าที่
     ถูกสั่งซื้อ จะเกี่ยวข้องกับ รายการสินค้าหนึ่งๆที่ถูกซื้อในวันหนึ่งๆ โดยลูกค้าคนหนึ่ง โดยซื้อจากผู้ขาย
     คนหนึ่ ง แต่ในความเป็ น จริ งแล้ ว ผู้ ใช้จะจ้องการข้อมูล สรุปรวบยอดของยอดเงิ นการสั่ งซื้อสิ นค้ า
     ค่าใช้จ่าย และ จานวนชิ้นสินค้าที่ถูกสั่งซื้อ ของการรายการสินค้าหนึ่ง ที่ถูกขายในวันหนึ่งๆ ถูกซื้อโดย
     ลูกค้าที่อาศัยอยู่ในเขตหนึ่งๆ เป็นต้น เพื่อให้ได้ข้อมูลที่ผู้ใช้ต้องการเราจะต้องทาการค้นหาเรคคอร์ด
                                                                                            10 | P a g e
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
     ของข้อมูลใน fact table ที่เกี่ยวข้องกับลูกค้าที่อาศัยอยู่ในเขตที่เราต้องการ แล้วทาการรวมยอดเงิน
     การสั่งซื้อสินค้า ค่าใช้จ่าย และ จานวนชิ้นสินค้าที่ถูกสั่งซื้อ จากการที่เราสามารถทาการสรุปรวบยอด
     มาตรวัดเหล่านี้ได้โดยใช้ฟังก์ชันการบวกธรรมดาๆ เราจะเรียกมาตรวัดเหล่านี้ว่าเป็น fully additive
     measure ดังนั้นในการค้นหาข้อมูลจากคิวรีที่ต้องการข้อมูลที่เป็นผลสรุป เราจะต้องแน่ใจว่ามาตรวัด
     ที่เรากาลังพิจารณานั้นเป็นแบบ fully additive ไม่เช่นนั้นแล้วเราอาจจะได้ผลลัพธ์ที่ไม่ถูกต้อง
    แอทริบิว /มาตรวัดบางตัวจะมีคุณสมบัติเป็น semiadditive measuresกล่าวคือ เป็ นมาตรวัดที่
     สามารถคานวณได้ แต่ไม่สามารถคานวณสรุปรวบยอดข้อมูลจากหลายๆเรคคอร์ดของ fact table ได้
     โดยตรง ตัวอย่างเช่น มาตรวัดผลกาไรของการสั่งซื้อสินค้าที่สามารถคานวณได้จากยอดเงินการสั่งซื้อ
     สินค้า และ ค่าใช้จ่าย ถ้า ในการสั่งสินค้ารายการหนึ่งในวันหนึ่งโดยลูกค้าคนหนึ่งมียอดเงินการสั่งซื้อ
     สินค้าเป็น 120 และ ค่าใช้จ่ายเท่ากับ 100 เราจะสามารถคานวณเปอร์เซ็นต์ของผลกาไรได้เท่ากับ 20
     แต่ถ้าต้องการเปอร์เซ็นต์ของกาไรที่ได้จากการขายสินค้ารายการหนึ่งในวันหนึ่งให้กับลูกค้าที่อาศัยอยู่
     ในเขตหนึ่งๆ เราไม่สามารถสรุปรวบยอดข้อมูลได้โดยตรงจากเรคคอร์ดต่างๆใน fact table แต่เราจะ
     สามารถคานวณได้จากผลรวมของยอดเงินการสั่งซื้อสินค้า และ ผลรวมของค่าใช้จ่าย ที่ได้มาจากการ
     บวกกันของผลลัพธ์แถวต่างๆ แล้วค่อนทาการค่าผลกาไรเป็นร้อยละ ซึ่งจากการที่ไม่สามารถรวมผล
     ข้อมูลได้โดยตรง มาตรวัดเปอร์เซ็นต์ผลกาไรจะไม่เป็น fully additive measure แต่จะเป็นแบบ
     semiadditive measure ซึ่งความแตกต่างของมาตรวัดทั้ง 2 ชนิดจะเกิดขึ้นเมื่อเราทาการรวบยอด
     ข้อมูลเพื่อคืนค่าผลลัพธ์ให้กับคิวรีจากผู้ใช้
    โดยปกติ fact table จะมีจานวนแอทริบิวประมาณ 10 แอทริบิวหรือน้อยกว่านั้น ซึ่งเป็นจานวนที่
     น้อยกว่า dimension table แต่จานวนเรคคอร์ดใน fact table จะมีมากกว่าใน dimension table
     เป็นจานวนหลายเท่าด้วยกัน สมมติว่าใน star schema ประกอบไปด้วย 4 dimension table ดังนี้
     (1) Product dimension table ที่มีข้อมูลรายการสินค้า 3 รายการ (2) Customer dimension
     table ที่มีข้อมูลลูกค้าจานวน 5 ราย (3) Order date dimension table ที่มีข้อมูลวันที่มีการสั่ง
     สินค้าเป็นจานวน 30 วัน และ (4) Sale representative dimension table ที่มีข้อมูลพนักงานขาย
     จานวน 10 คน จากข้อมูลทั้งหมดเราสามารถคานวณจานวนเรคคอร์ด/แถวของข้อมูลใน fact table
     ได้เท่ากับ 4,500 เรคคอร์ด (=3  5  30  10) ซึ่งเป็นเรคคอร์ดจานวนมากเมื่อเทียบกับ
     dimension table สมมติว่าถ้าใน star schema ประกอบไปด้วย 2 dimension table จะทาให้
     fact table นั้นค่อนข้างแคบเนื่องจากจะมีจานวนแอทริบิวเพียง 2 แอทริบิวเท่านั้น แต่อาจจะยังคง
     มีเรคคอร์ดของข้อมูลเป็นจานวนมาก
    ใน fact table อาจจะมีข้อมูลแบบเบาบาง (sparse data) ถ้าใน star schema ประกอบไปด้วย
     4dimension table นั่นคือ product, order date, customer และ sale representative และ
     เก็บข้อมูลที่มีความละเอียดสูงสุด จะทาให้ข้อมูลแถว/เรคคอร์ดหนึ่งๆใน fact table จะเกี่ยวข้องกับ
     รายการสินค้าชนิดหนึ่ง ที่ถูกซื้อในวันหนึ่ง โดยลูกค้าคนหนึ่ง และขายโดยพนักงานคนหนึ่ง ถ้าบริษัทมี
     วันหยุดทาการ เราก็จะไม่มีข้อมูลการสั่งซื้อสินค้าในวันนั้นๆ ซึ่งเราจะไม่ทาการเก็บข้อมู ลอยู่ใน fact
                                                                                          11 | P a g e
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
      table ด้วยดังนั้นเราสามารถสรุปได้ว่าเราจะทาการเก็บข้อมูลที่เกิดขึ้นไว้ใน fact table เท่านั้น
      สาหรับข้อมูลที่ไม่เกิดขึ้น เราจะไม่ทาการเก็บข้อมูลไว้เป็น NULL หรือ เป็นค่าอื่นๆโดยเด็ดขาด ซึ่ง
      การเก็บข้อมูลที่เกิดขึ้นจริงเท่านั้น อาจจะทาให้ข้อมูลใน fact table มีความเบาบางเนื่องจากการขาด
      หายไปหรือการไม่เกิดขึ้นของข้อมูลในบางช่วงเวลา
     ใน fact table อาจจะมีข้อมูลที่ไม่ใช่มาตรวัด (metrics) ต่างๆอยู่ด้วย จากดังอย่างในรูป ที่ 5-8 จะมี
      ข้อมล order_numberและ order_lineเป็นแอทริบิวใน fact table ที่ไม่ใช่มาตรวัด แต่เป็นข้อมูล
      จานวนสินค้าที่ถูกสั่งซื้อ จานวนครั้งที่สั่งซื้อสินค้า เป็นต้น ถึงแม้ว่าข้อมูลเหล่านี้จะไม่ใช่มาตรวัด แต่ใน
      บางกรณีข้อมูลเหล่านี้จะมีประโยชน์ในการวิเคราะห์ต่างๆ เช่น เราอาจจะต้องการหาจานวนเฉลี่ยของ
      สินค่ต่อการสั่งซื้อสินค้าในแต่ละครั้ง การที่จะได้มาซึ่งค่าเฉลี่ยเราจาเป็นต้องใช้ข้อมูลเหล่านี้ในการ
      คานวณ ดังนั้นเราจึงจาเป็นต้องเก็บข้อมูลเหล่านี้ไว้ใน fact table ซึ่งการเก็บข้อมูลในลักษณะนี้จะ
      เรียกว่า degenerate dimensions
          นอกจากลักษณะและคุณสมบัติของข้อมูลที่ถูกเก็บอยู่ใน fact table ที่อธิบายก่อนหน้าแล้ว เรายัง
ต้องพิจารณาว่า fact table มีมาตรวัดที่มีประโยชน์หรือไม่ ลองพิจารณาตัวอย่างในรูปที่ 5-9 ซึ่งแสดง fact
table ที่ไม่มีมาตรวัด(metrics) หรือค่าความจริง (facts) ใดๆ ซึ่งในรูปจะเป็น star schema ที่ต้องการจะ
ตรวจสอบการเข้าชั้นเรียนของนักเรียน ที่ประกอบไปด้วย dimension ต่างๆ อาทิเช่น วันที่ วิชาที่เรียน
ห้องเรียน นักเรียน และ อาจารย์ ถ้านักเรียนคนหนึ่งๆเข้าเรียนวิชาหนึ่ง ณ ห้องเรียนหนึ่ง ที่สอนโดย อ. หนึ่งๆ
และ เหตุการณ์เกินชึ้นในวันหนึ่ง เราจะเก็บข้อมูลการเข้าเรียนของนักเรียนด้วยค่าเลข 1 ดังนั้นทุกครั้งที่มีการ
เข้าเรียนของนักเรียนคนใดก็ตาม fact table จะต้องเก็บเลข 1 ไว้สาหรับข้อมูลแถว/เรคคอร์ดนั้นๆเสมอ แต่
แท้จริงแล้วเราไม่ต้องทาการเก็บเลข 1 เพื่อแสดงถึงการเข้าเรียนของนักเรียน เนื่องจากถ้ามีข้อมูลเกิดขึ้นใน
fact table นั้นก็หมายถึงมีนักเรียนเข้าเรียน ดังนั้นเราจึงไม่ต้องทาการเก็บค่าเลข 1 ที่เป็นมาตรวัดหรือค่า
ความจริงแต่อย่างใด ดังนั้นเมื่อ fact table ไม่มีการเก็บค่าความจริงหรือมาตรวัดใดๆเราจะเรียก fact table
นั้นว่า factless fact table




                                                                                                  12 | P a g e
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
                   รูปที่ 5-9 ตัวอย่าง factless fact table ที่ไม่มีมาตรวัดหรือค่าความจริงใดๆ

คีย์ต่างๆใน star schema
         แบบจาลองมิติต่างๆ (dimensional model) จะประกอบไปด้วย 2 ส่วนหลักๆคือ fact และ
dimension table ซึ่งอย่างที่เราทราบดีว่า dimension table จะประกอบข้อมูลต่างๆที่มีลักษณะเป็นแบบ
ลาดับชั้น (hierarchy) และ แบบแบ่งหมวดหมู่ (category) และ ในส่วนของ fact table จะประกอบไปด้วย
คีย์ต่างๆจาก dimension table ที่เกี่ยวเนื่องกับ fact table และ มาตรวัดต่างๆที่เราสนใจ ซึ่งจาก
องค์ป ระกอบทั้งสองส่ ว นแต่ล ะส่ ว นจะต้องมีคีย์ไว้ใช้ส าหรับแยกความแตกต่างระหว่างข้อมูล ที่มีลั กษณะ
แตกต่างกัน ซึ่งใน star schema จะประกอบไปด้วยคีย์ 3 ประเภทด้วยกันดังนี้
คีย์หลัก (Primary keys)
            คีย์หลักจะเป็นข้อมูลแอทริบิวหนึ่งที่ใช้สาหรับระบุความแตกต่างของข้อมูลแต่ละแถวของ dimension
table เช่น คีย์หลักของ product dimension table จะสามารถระบุหนึ่งรายการสินค้าหนึ่งๆได้อย่างชัดเจน
แต่ อ ย่ า งไรก็ ดี เราควรจะต้ อ งระมั ด ระวั ง ในการก าหนดคี ย์ ห ลั ก ให้ กั บ แต่ ล ะแถวของข้ อ มู ล ของแต่ ล ะ
dimension ด้วย ลองพิจารณาตัวอย่างการกาหนดคีย์หลักที่ก่อให้เกิดปัญหาได้ ดังนี้ —ถ้าเราเก็บคีย์หลักของ
product dimension table เป็นรหัสสินค้าที่ประกอบไปด้วยตัวเลข 8 หลักด้วยกัน แต่ละหลักอาจจะสื่อ
ความหมายต่างๆ เช่น อาจมีเลข 2 หลักที่แสดงถึงรหัสหรือหมายเลขคลังสินค้าที่รายการสินค้านั้นๆถูกเก็บอยู่
อาจมีเลขอีก 2 หลักที่แสดงถึงประเภทของรายการสินค้าเป็นต้น แต่ถ้าเราทาการเคลื่อนย้ายสินค้าไปจัดเก็บไว้
ในอี กคลั ง สิ น ค้า หนึ่ ง จะทาให้ ร หั ส สิ น ค้า ที่มี ความเกี่ ยวเนื่อ งกั บรหั ส คลั ง สิ น ค้า ต้อ งเปลี่ ย นแปลงตามรหั ส
คลังสินค้าไปด้วย ซึ่งถ้ารหัสสินค้านั้นเป็นส่วนหนึ่งของคีย์หลักของ product dimension table จะทาให้เรา
ต้องทาการเก็บข้อมูลรายการสินค้าชนิดเดียวกันซ้า 2 ครั้งเนื่องจากคีย์หลักที่ไม่เหมือนกัน (เนื่องจากบริษัททา
การเปลี่ยนคลังสินค้าที่ใช้เก็บสินค้า ทาให้คีย์หลักเปลี่ยนไป) ซึ่งการเก็บข้อมูลซ้าซ้อนกันอาจทาให้เกิดปัญหา
ในกรณีที่เราต้องทาการรวบรวม/รวบยอดข้อมูลที่อาจไม่สอดคล้องกัน ดังนั้นจากเหตุการดังกล่าวเราไม่ควรจะ
                                                                                                                    13 | P a g e
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
ใช้คีย์หลักของข้อมูลที่ได้จากระบบการดาเนินการมาใช้เป็นคีย์หลักของ dimension table เนื่องจากข้อมูลใน
ระบบการดาเนินการนั้นมีการเปลี่ยนแปลงค่อนข้างบ่อย เราจึงควรที่จะสร้างคีย์หลักขึ้นมาใหม่ที่ไม่สอดคล้อง
กับคีย์หลักของระบบการดาเนินการ
คีย์ตัวแทน (Surrogate keys)
         เพื่อที่จะแก้ปัญหาข้างต้น เราอาจใช้คีย์ตัวแทน (surrogate keys) เป็นคีย์หลักของแต่ละ dimension
table แทน คีย์ตัวแทนจะเป็นคีย์ที่สร้างมาจากลาดับของตัวเลขที่ไม่มีความหมายใดๆแอบแฝง (อาทิเช่นไม่มี
หมายเลขคลังสินค้าที่จัดเก็บสินค้านั้นๆเป็นส่วนประกอบของคีย์หลัก เป็นต้น) ดังนั้นคีย์ตัวแทนสามารถอ้างถึง
รายการสินค้าได้โดยง่าย แต่ในบางกรณีที่เราต้องการความหมายแอบแฝงของคีย์หลักจากระบบการดาเนินการ
เช่น เราต้องการทราบถึงหมายเลขคลังสินค้าที่จัดเก็บรายการสินค้านั้นๆ เราสามารถเก็บข้อมูลหมายเลข
คลังสินค้าแยกไว้เป็นอีกแอทริบิวหนึ่งของข้อมูลใน dimension table ได้
คีย์รอง (Foreign keys)
          แต่ละ dimension table จะเกี่ยวข้องกับ fact table โดยมีความสัมพันธ์เป็นแบบ one-to-many
โดยที่คีย์หลักของแต่ละ dimension table จะเป็นคีย์รองใน fact table ถ้า fact table มีความสัมพันธ์กับ 4
dimension table อาทิเช่น รายการสินค้า วันและเวลา ลูกค้า และ ตัวแทนขาย แต่ละคีย์หลักของทั้ง 4
dimension table จะถูกเก็บเป็นคีย์รองอยู่ใน fact table ทั้งหมด หลังจากเก็บคีย์รองทั้งหมดไว้ใน fact
table แล้ว ลองพิจารณาทางเลือกในการเก็บในการกาหนดคีย์หลักให้กับ fact table ซึ่งสามารถทาได้ดังนี้
    1. นาคีย์หลักของแต่ละ dimension table มาเรียงต่อกันเพื่อสร้างเป็นคีย์หลักของ fact table แต่ยังคง
       เก็บคีย์หลักของแต่ละ dimension table ไว้เป็นคีย์รองของ fact table ด้วย วิธีการนี้จะทาให้เปลือง
       เนื้อที่ในการจัดเก็บข้อมูลแต่ละเรคคอร์ดใน fact table
    2. นาคีย์หลักของแต่ละ dimension table มาเรียกต่อกันเพื่อสร้างเป็นคีย์หลักของ fact table แต่ไม่
       ทาการเก็บคีย์หลักของแต่ละ dimension table ไว้ใน fact table เลย เนื่องจากเราสามารถมองได้
       ว่าแต่ละส่วนของคีย์หลักของ fact table สามารถสื่อถึงคีย์หลักของแต่ละ dimension table
    3. สร้างคีย์หลักขึ้นใหม่ที่ไม่ได้ขึ้นกับคีย์หลักของ dimension table วิธีการนี้ยังคงเก็บเก็บคีย์หลักของ
       แต่ละ dimension table ไว้เป็นคีย์รองของ fact table ด้วย วิธีการนี้จะทาให้เปลืองเนื้อที่ในการ
       จัดเก็บข้อมูลแต่ละเรคคอร์ดใน fact table
       จากทั้ง 3 วิธีที่ได้กล่าวมาข้างต้น วิธีที่ 2 เป็นวิธีที่ได้รับความนิยมเป็นอย่างมาก เนื่องจากทางเลือกนี้
ประหยัดพื้นที่ในการจัดเก็บข้อมูลและยังสามารถเชื่อมโยงถึงคีย์หลักของแต่ละ dimension table ได้อีกด้วย

ตัวอย่าง star schema สาหรับธุรกิจต่างๆ
          จากส่วนก่อนหน้าเราทราบว่า star schema จะประกอบไปด้วย (1) มาตราวัด (metrics) หรือ
ข้อเท็จจริง (facts)(2) มิติทางธุรกิจต่างๆ ที่แต่ละมิติจะประกอบไปด้วยข้อมูลที่เป็นลาดับชั้น (hierarchy) และ
ข้อมูลที่เป็นหมวดหมู่ (category) ที่ใช้สาหรับการวิเคราะห์ และ (3) คีย์หลัก (primary key) และ คีย์รอง
                                                                                               14 | P a g e
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
(foreign keys) ซึ่งจากส่วนประกอบต่างๆของ star schema เราอาจจะยังไม่เห็นภาพโดยละเอียด หรือ ยังไม่
เข้าใจรายละเอียดข้างใน star schema มากนัก ดังนั้น เพื่อให้เรามีความเข้าใจมากขึ้นเกี่ยวกับ star schema
และ ส่วนประกอบต่างๆลองพิจารณาตัวอย่าง star schema ของธุรกิจที่แตกต่างกัน 4 ประเภทดังต่อไปนี้
บริษัทให้เช่าวีดีโอ—จะสนใจเกี่ยวกับหัวข้อ (subject) การเช่าวีดีโอเป็นหลัก มาตรวัดความสาเร็จของการเช่า
วีดีโออาจะประกอบไปด้ วยจานวนเงินที่ได้รับจากค่าเช่า และ จานวนค่าปรับในกรณีที่ส่งคืนวีดีโอช้าเป็นต้น
นอกจากนี้มิติทางธุรกิจที่เกี่ยวข้องกับการเช่าวีดีโออาจจะประกอบไปด้วย รายการวีดีโอ (rental item) ลูกค้า
(customer) แกนเวลา (time) และ โปรโมชัน (promotion) สาหรับการเช่าวีดีโอเมื่อเราทาการกาหนดมาตร
วัดความสาเร็จของการเช่าวีดีโอ และ มิติทางธุรกิจที่เกี่ยวข้องกับการเช่าวีดีโอแล้ว เราสามารถสร้าง star
schema ของบริษัทให้เช่าวีดีโอได้ดังรูปที่ 5-10




                 รูปที่ 5-10 ตัวอย่าง star schema การเช่าวีดีโอสาหรับบริษัทให้เช่าวีดีโอ
ธุรกิจซุปเปอร์มาเก็ต—จะสนใจเกี่ยวกับการขายสินค้าเป็นหลัก ซึ่งมาตรวัดความสาเร็จของการขายสินค้าจะ
ประกอบไปด้วย จานวนชิ้นสินค้าแต่ละชนิดที่ขายได้ (sold quantity) ยอดขายที่ได้ขายทั้งหมดเป็นจานวน
เงิน (gross sales) ยอดขายทั้งหมดเป็นจานวนเงินหลังจากหักค่าใช้จ่ายแล้ว (net sales) ค่าใช้จ่ายต่างๆ
(cost) ยอดการใช้คูปองส่วนลดจากทางร้านค้า (store coupon amount) และ ยอดการใช้คูปองส่วนลดจาก
บริษัทผู้ผลิต (manufacturer coupon amount) เป็นต้น ในส่วนของมิติทางธุรกิจของธุรกิจซุปเปอร์มาร์เก็ต
จะประกอบไปด้วย แกนเวลา (time) รายการสินค้า (product) โปรโมชันการขายสินค้า (promotion) และ
สาขาต่างๆที่มีการจาหน่ายสินค้าของบริษัท (store) เมื่อทราบรายละเอียดเกี่ยวกับมาตรวัดความสาเร็จของ


                                                                                           15 | P a g e
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
การสินค้า และมิติทางธุรกิจต่างๆที่เกี่ยวข้องแล้ว เราสามารถสร้าง star schema สาหรับการขายสินค้าของ
ธุรกิจซุปเปอร์มาร์เก็ตได้ดังรูปที่ 5-11




            รูปที่ 5-11 ตัวอย่าง star schema สาหรับการขายสินค้าของธุรกิจซุปเปอร์มาร์เก็ต
บริษัทผู้ให้บริการระบบโทรศัพท์เคลื่อนที่—จะสนใจเกี่ยวกับการใช้งานระบบโทรศัทพ์เคลื่อนที่ของลูกค้าเป็น
หลัก ซึ่งมาตรวัดความความสาเร็จของการใช้งานระบบโทรศัพท์เคลื่อนที่ของลูกค้าจะประกอบไปด้วย แพค
แกจของบริษัทที่ลูกค้าเลือกใช้ (plan minutes) จานวนนาทีที่ผู้ใช้ทาการโทรศัพท์ไปหาผู้อื่น (overall
minutes) จานวนข้อมูลที่ผู้ใช้เรียกดูผ่านอินเทอร์เน็ตของโทรศัพท์เคลื่อนที่ (data usage) เป็นต้น ในส่วนของ
มิติทางธุรกิจที่เกี่ยวข้องกับการใช้งานโทรศัพท์เคลื่อนที่จะประกอบด้วย แพคเกจหรือโปรโมชันจากบริษัทผู้
ให้บริการ (plan) แกนเวลา (time) สถานะของลูกค้า (status) และ ข้อมูลลูกค้า (customer) เป็นต้น จาก
ข้อมูลทั้งในส่วนของมาตรวัดความสาเร็จและมิติทางธุรกิจของการใช้งานระบบโทรศัพท์เคลื่อนที่ของลูกค้า เรา
สามารถสร้าง star schema ได้ดังรูปที่ 5-12
บริษัทประมูล—จะสนใจที่การประมูลสินค้าเป็นหลัก ซึ่งมาตรวัดความสาเร็จของการประมูลจะประกอบไป
ด้วย จานวนครั้งของการประมูลที่ได้ราคาต่ากว่าที่ประเมินไว้ (low estimate) จานวนครั้งของการประมูลที่ได้
ราคาสูงกว่าที่ประเมินไว้ (high estimate) ราคาที่จองไว้ (reserve price) และ ราคาที่ขายสินค้าหลังจากการ
ประมูล (sold price) เป็นต้น ในส่วนของมิติทางธุรกิจที่เกี่ยวข้องกับการประมูลสินค้าจะเกี่ยวข้องกับ รายการ
สินค้าที่นามาประมูล (item) ลูกค้าที่ทาการประมูลสินค้า (buyer) ผู้ดาเนินการประมูล (consignor) และ


                                                                                           16 | P a g e
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
แกนเวลา (time) จากข้อมูลทั้งมาตรวัดความสาเร็จของการประมูลและมิติต่างๆทางธุรกิจ เราสามารถสร้าง
star schema สาหรับการประมูลสินค้าได้ดังรูปที่ 5-13




  รูปที่ 5-12 ตัวอย่าง star schema สาหรับการใช้โทรศัพท์เคลื่อนที่ของลูกค้าจากบริษัทผู้ให้บริการระบบ
                                         โทรศัพท์เคลื่อนที่




              รูปที่ 5-13 ตัวอย่าง star schema สาหรับการประมูลสินค้าของบริษัทประมูล
                                                                                         17 | P a g e
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
ประโยชน์ของ star schema
          เมื่อเราพิจารณา star schema แบบเจาะลึกลงไป เราจะเห็นว่า star schema จะเป็นแบบจาลอง
ความสัมพันธ์ (relational model) ของ fact table และ dimension table ที่อยู่ในรูปแบบของ one-to-
many ตารางทั้งสองประเภทจะไม่มีการทานอร์มอลไลซ์(normalized) ข้อมูลเพื่อลดความซ้าซ้อนของข้อมูลที่
เกิดขึ้น ดังนั้นข้อมูลในแต่ละ dimension table ของ star schema อาจเกิดความซ้าซ้อนเกิดขึ้นได้ แต่
อย่างไรก็ดี star schema ก็มีประโยชน์ต่างๆมากมายดังต่อไปนี้
ผู้ใช้สามารถเข้าใจได้ง่าย—อย่างที่เราทราบกันมาแล้วในบทก่อนหน้าว่า ผู้ใช้คลังข้อมูลสามารถกาหนดหรือ
สร้างคิวรีเองเพื่อทาการเรียกดูข้อมูลในแง่มุมต่างๆได้ โดยที่ก่อนเริ่มการใช้งานคลังข้อมูล ผู้ใช้จะต้องทราบว่า
พวกเขาสามารถเรียกดูข้อมูลอะไรได้บ้าง รายละเอียดของข้อมูลเป็นอย่างไรบ้าง ความสัมพันธ์ระหว่างชิ้นส่วน
ต่างๆของข้อมูลเป็นอย่างไรบ้าง เป็นต้น ดังนั้นเพื่อให้ผู้ใช้สามารถใช้งานคลังข้อมูลผ่านการกาหนดหรือเรียกใช้
คิวรี ผู้ใช้จะสามารถทาความเข้าใจเกี่ยวกับโครงสร้างของข้อมูลในคลังข้อมูลผ่าน star schema ที่สะท้อนถึง
สิ่งที่ผู้ใช้คิด รูปแบบรายงาน และ การวิเคราะห์ต่างๆที่ผู้ใช้ต้องการได้ ซึ่งจากโครงสร้างของ star schema
หนึ่งๆ อาทิเช่น star schema ที่เกี่ยวข้องกับการขายสินค้า เราจะอธิบายผู้ใช้ให้เข้าใจได้ว่า ยอดขายของ
รายการสินค้า A จะถูกเก็บอยู่ใน fact table และ ยังสามารถชี้ให้เห็นถึงความสัมพันธ์ของส่วนประกอบต่างๆ
ของข้อมูลผ่านทางdimension table ต่างๆได้อีกด้วย ซึ่งจากการอธิบายโดยการอ้างถึง star schema จะทา
ให้ผู้ใช้เข้าใจถึงการเชื่อมโยงของข้อมูลได้ในทันที
เพิ่มประสิทธิภาพในการเข้าถึงหรือค้นหาข้อมูล —แม้ว่าคิวรีที่สร้างขึ้นดูเหมือนจะซับซ้อน แต่การค้นหา
ข้อมูลนั้นสามารทาได้โดยง่ายและตรงไปตรงมา เพื่อให้เข้าใจถึงประโยชน์ที่ได้จาก star schema ในเรื่องของ
การเพิ่มประสิทธิภาพการค้นหาข้อมูล ลองพิจารณาตัวอย่างในรูปที่ 5-14 ซึ่งเป็น star schema สาหรับการ
วิเคราะห์ข้อบกพร่องของรถยนต์ (ในขั้นตอนการผลิต) จาก star schema ดังกล่าวถ้าคุณเป็นผู้จัดการฝ่าย
บริการที่ศูนย์ตัวแทนจาหน่ ายรถยนต์แห่งหนึ่ง คุณอาจสังเกตุเห็นได้ว่ามี ปัญหาของการพ่นสี เกิดขึ้นบนรถ
Corvettes ที่ผลิตขึ้นในเดือนมกราคมปี 2012 เป็นจานวนมาก ดังนั้นคุณอาจจะต้องการเครื่องมือในการ
วิเคราะห์ข้อบกพร่องเหล่านั้น เพื่อให้ทราบถึงสาเหตุที่ซ่อนอยู่ และ ทาการแก้ไขปัญหาเหล่านั้น




                                                                                             18 | P a g e
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
              รูปที่ 5-14 ตัวอย่างประสิทธิภาพที่เพิ่มขึ้นของการเข้าถึงข้อมูลใน star schema
          ถ้าเราทาการสร้าง star schema สาหรับการตรวจจับข้อบกพร่องของการผลิตรถยนต์ โดยทาการเก็บ
รวบรวมจานวนข้อบกพร่องที่เป็นมาตรวัดไว้ใน fact table ที่อยู่ตรงกลาง จากนั้นรายล้อม fact table ด้วย
dimension table ต่างๆ ดังนี้: (1) time dimension table ที่เก็บข้อมูลปีของรถรุ่นหนึ่งๆ (2) component
dimension ที่เก็บข้อมูลเกี่ยวกับส่วนต่างๆของรถ เช่น สีขาวมุก เป็นต้น (3) problem dimension ที่เก็บ
ข้อมูล เกี่ย วกับปั ญหาชนิ ดต่างๆที่อาจะเกิดขึ้นจากการผลิต เช่น การพ่นสีรถยนต์เป็นต้น (4) product
dimension ที่ประกอบไปด้วยข้อมูลรายละเอียดของรถยนต์แต่ละรุ่น และ (5) supplier dimension ที่เก็บ
ข้อมูลเกี่ยวกับผู้ผลิตชึ้นส่วนต่างๆของรถยนต์ ซึ่งจาก fact และ dimension table ของ star schema เราจะ
สามารถทราบถึงสาเหตุหรื อต้น ตอของการเกิดปัญหาต่างๆได้ โดยการดูจากลู กศรต่างๆจาก dimension
table ที่ชี้เข้าหา fact table ซึ่งจากลูกศรต่างๆจะทาให้เรารู้เส้นทางของการสืบค้นข้อมูลจาก fact table โดย
การแยก (1) รถ Corvette จาก product dimension (2) การพ่นสีออกจากปัญหา (3) อุปกรณ์ที่มีสีขาวมุก
ออกจาก component dimension และ เดือนมกราคมปี 2012 ออกจาก time dimension ซึ่งจากข้อมูลที่
ได้จาก fact table ที่ตรงตามเงื่อนไขต่างๆของทั้ง 4 dimension ข้างต้น เราจะทราบถึงต้นตอของปัญหาโดย
การดูข้อมูลเฉพาะส่วนของ supplier dimension ที่เกี่ยวข้องกับแถวต่างๆของ fact table ที่ได้จากการ
สืบค้นก่อนหน้า ท้ายสุดเราจะได้รายชื่อของ supplier ที่ผลิตอุปกรณ์หรือชิ้นส่วนต่างๆที่มีปัญหาของรถ
Corvette เพื่อแสดงผลให้ผู้ใช้สืบไป
เหมาะกับการประมวลผลคิวรี—ลองพิจารณา star schema ในรูปที่ 5-4 เพื่อทาความเข้าใจถึงประโยชน์ของ
star schema ในการประมวลผลคิวรีจากผู้ใช้ ซึ่งจากรูปที่ 5-4 จะเป็น star schema สาหรับวิเคราะห์ข้อมูล
การสั่งซื้อสินค้าจากลูกค้าที่ประกอบไปด้วย 1fact table และ 3 dimension table ด้วยกัน ถ้าผู้ใช้ทาการ
สร้างคิวรีเพื่อถามถึงข้อมูลเกี่ยวกับ “ค่าใช้จ่าย (cost) ของสินค้า A ที่ขายให้กับลูกค้าในรัฐซานฟรานซิสโก

                                                                                             19 | P a g e
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
ในช่วงเดือนมกราคมปี 2012ที่ผ่านมา” ผลลัพธ์ที่ได้คือ ค่าใช้จ่าย ที่มาจากผลรวมของข้อมูลแถวต่างๆใน fact
table ที่เกี่ยวข้องกับเวลาในช่วงเดือน มกราคมปี 2011 รายการสินค้า A และ ลูกค้าที่อยู่ในรัฐซานฟรานซิสโก
         จากผลลัพธ์ที่ได้จากการสืบค้นข้อมูลตามคิวรีที่ผู้ใช้กาหนด ลองพิจารณาแต่ละขั้นตอนของการสืบค้น
ข้อมูลดังต่อไปนี้
    1. ทาการเลือก (select) แถวของข้อมูลจาก customer dimension table ที่พักอาศัยอยู่ในรัฐซานฟ
       รานซิสโก
    2. ทาการเลือกผลลัพธ์จาก fact table โดยทาการเลือกเฉพาะแถวของข้อมูลที่เกี่ยวข้องกับลูกค้าที่ได้
       จากการสืนค้นข้อมูลในขั้นตอนที่ 1
    3. ทาการเลือกแถวของข้อมูลจาก time dimension table ที่มีข้อมูลเดือนและปี เป็นเดือนมกราคมปี
       2012 ตามลาดับ
    4. ทาการเลือกผลลัพธ์จากผลลัพธ์ที่ได้จากการสืบค้นข้อมูลจาก fact table ในครั้งแรก (ผลลัพธ์จาก
       ขั้นตอนที่ 2) ที่มีข้อมูลแกนเวลาเกี่ยวข้องกับผลลัพธ์ที่ได้จากการสืบค้นข้อมูลจาก time dimension
       table (ผลลัพธ์จากขั้นตอนที่ 3) (ผลลัพธ์จากขั้นตอนนี้จะเป็นเซตของแถวของข้อมูลจาก fact table
       ที่มีจานวนน้อยกว่าการสืบค้นข้อมูลจาก fact table ในครั้งแรกซึ่งเราอาจเรียกได้ว่าเป็นผลลัพธ์
       จานวนแถวส่วนที่สองจาก fact table)
    5. ทาการเลือกแถวของข้อมูลจาก product dimension table ที่เป็นข้อมูลรายการสินค้า A
    6. ทาการเลือกผลลัพธ์จากผลลัพธ์จานวนแถวส่วนที่สองจาก fact table (ผลลัพธ์จากขั้นตอนที่ 4) ที่
       เกี่ยวข้องกับรายการสินค้า A เราจะได้ผลลัพธ์จานวนแถวของข้อมูลส่วนที่สามจาก fact table
    7. ทาการรวมค่าใช้จ่าย (cost) จากทุกแถวของข้อมูลในผลลัพธ์ส่วนที่สามจาก fact table (ผลลัพธ์จาก
       ขั้นตอนที่ 6) เพื่อคืนค่าผลลัพธ์ให้กับผู้ใช้สืบไป
        จากตัวอย่างข้างต้น ถ้าเราไม่คานึงถีงจานวนมิติของ star schema ที่เกี่ยวข้องกับคิวรีที่ผู้ใช้กาหนด
และ ไม่คานึงถึงประสิทธิภาพของการค้นคืนผลลัพธ์ให้กับคิวรีแล้ว เราจะสามารถเริ่มทาการเลือกแถวจากมิติ
ใดเป็นลาดับแรกก็ได้โดยใช้เงื่อนไขที่ผู้ใช้กาหนด การเลือกมิติใดก็ได้มาประมวลผลเป็นลาดับแรก และ ลาดับ
ต่อๆไปจะช่วยให้ผู้ใช้สามารถใช้งานได้ง่าย และ ขั้นตอนการเชื่อมโยงระหว่างมิติต่างๆกับ fact table ก็
สามารถทาได้โดยง่าย
         นอกจากประโยชน์ และ ขั้นตอนการทางานของ star schema ข้างต้น star schema ยังสามารถ
รองรับการเรียกดูหรือสืบค้นข้อมูลแบบขุดเจาะลงรายละเอียด (drill down) และ แบบสรุปรายละเอียด (roll
up) ได้ อีก ด้ว ย ลองพิจ ารณาการสื บ ค้ น ข้อ มูล แบบขุด เจาะลงรายละเอีย ด ที่เริ่ มจากการสอบถามข้ อมู ล
ค่าใช้จ่ายสาหรับลูกค้าในรัฐแคลิฟอร์เนียที่ผลลัพธ์จะได้มาจากแถวของข้อมูลใน fact table จากนั้นเรา
สามารถสืบค้นข้อมูลแบบขุดเจาะลงรายละเอียดจากการสืบค้าครั้งล่าสุ ดได้ โดยที่เราอาจจะต้องการข้อมูล
ค่าใช้จ่ายสาหรับลูกค้าที่พักอาศัยอยู่ในพื้นที่รหัสไปรษณีย์หนึ่งๆของรัฐแคลิฟอร์เนีย ซึ่งจากความต้องการ

                                                                                           20 | P a g e
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน
ดังกล่าวจะทาให้เราต้องทาการเลือกข้อมูลจากผลลัพธ์ที่ได้ในคิวรีแรกที่สอดคล้องกับรหัสไปรษณีย์ท่กาหนด
เป็นต้น

คาถามท้ายบท
   1.   Star schema คืออะไร? ส่วนประกอบของ star schema มีอะไรบ้าง? อย่างไร?
   2.   จงอธิบายถึงความเบาบางของข้อมูลใน fact table?
   3.   จงอธิบายถึงความแตกต่างระหว่างมาตรวัดที่เป็นแบบ full additive และ semiadditive?
   4.   จงอธิบายถึงคีย์ต่างๆใน dimension และ fact tables
   5.   จงอธิบายถึงความละเอียดของข้อมูลในคลังข้อมูล
   6.   จงอธิบายถึงประโยชน์ของ star schema มา 3 ข้อ? และอธิบายถึงข้อเสียของ star schema?
   7.   ลาดับชั้นและหมวดหมู่ของข้อมูลใน dimension table เป็นอย่างไร?




                                                                                     21 | P a g e
Data Warehouse Design (การออกแบบคลังข้อมูล) โดย อ.ดร.โกเมศ อัมพวัน

				
DOCUMENT INFO
Shared By:
Categories:
Stats:
views:116
posted:10/3/2012
language:Thai
pages:21