Microsoft POWER BI The series EP3.2 การ Design Data Modeling

Tanakrit T
Tri Petch Digital
Published in
3 min readFeb 6, 2023

จากตอนที่แล้วเราได้พูดถึงพื้นฐานการทำ data model ไปแล้ว ถ้าใครยังไม่ได้อ่านลองกดเข้าไปอ่านตามลิ้งนี้ได้เลยน้า

https://medium.com/tri-petch-digital/microsoft-power-bi-the-series-ep3-1-data-modeling-bf663fea2838

วันนี้เราจะไปอีก step นึงคือการทำ data model ยังไงให้ performance ดีและเหมาะสม จากที่กล่าวมาเราอยากให้เพื่อนรู้จักคำว่า Star Schema และ Snowflake Schema

Star Schema คืออะไร ?

Star Schema คือ Dimensional Data Model ที่มี Fact Table อยู่ตรงกลาง รายรอบไปด้วยบรรดา Dimension Tables

จากในรูปเราจะเห็นว่าข้อมูลใน Fact Table จะเป็นข้อมูลตัวเลขทางธุรกิจ เช่น ยอดขาย

และส่วนข้อมูลใน Dimension Tables จะเป็น Attributes ที่ใช้บอกข้อมูลใน Fact Table เช่น สินค้า, ลูกค้า, วันที่, ร้านค้า

จะเห็นได้ว่า Star Schema จะมี Relationship ที่เป็น 1:1 หรือ 1:* ซะส่วนใหญ่ โดยที่

  • 1 จะอยู่ที่ Key ของฝั่ง Dimension Tables จะไม่ซ้ำกัน (มี 1 ตัว) เช่น Customer 1 คนก็ควรมี Customer ID แค่ 1 ค่า
  • * จะอยู่ที่ Key ของฝั่ง Fact Table เพราะ Customer ID มีสิทธิ์ซ้ำกันได้ เพราะลูกค้าสามารถซื้อสินค้าได้หลายขิ้น หรือหลายร้านค้า

ซึ่ง Data Model แบบ Star Schema เหมาะกับข้อมูลที่มีขนาดไม่ใหญ่มาก เพราะข้อมูลทั้งใน Fact Table และ Dimension Table ต้องเก็บอยู่ในรูปของ De-Normalize ทำให้ใช้ Storage เก็บข้อมูลค่อนข้างเยอะ

Snowflake Schema คืออะไร ?

Snowflake schema คืออะไร จริงๆแล้ว Snowflake schema ก็มีรูปแบบที่แทบจะเหมือนกันกับ Star schema ทุกอย่าง แต่จะมีข้อแตกต่างตรง จะมี Dimension table ได้หลายระดับลงไปอีก และในระหว่าง Dimension table จะมี key ที่เชื่อมโยงกันเอง

อย่างเช่นในรูปด้านล่าง เราจะเห็นว่า table dim_location จะเชื่อมต่อไปยัง dim_province ต่อไปอีก

เราจะเห็นว่า Snowflake schema จะสามารถใช้ลด storage ในการเก็บข้อมูลขนาดใหญ่ได้เนื่องจากมีการทำ normalize ข้อมูลหลายชั้น แต่จะเพิ่มความซับซ้อนของการสร้าง Relationship ระหว่างข้อมูลมากขึ้น

ตัวอย่างแผนภาพ diagram ของ Snowflake schema

https://en.wikipedia.org/wiki/Snowflake_schema

ในความเป็นจริงแล้ว Data Model ที่จะใช้ใน Power BI ไม่ได้มีแค่ Star Schema หรือ Snowflake Schema มันสามารถมีได้อีกแบบ เช่น กรณีที่ต้องมี Fact Table มากกว่า 1 ตัว เป็นต้น

แต่สำหรับผู้เริ่มต้น เราแนะนำให้ทำเป็น Star Schema หรือใช้ตามความเหมาะสมของข้อมูลไปก่อน

สำหรับบทความหน้า จะเป็นเรื่องอะไร อย่าลืมเข้ามาติดตามกันน้าา

🙏ขอบคุณทุกคนที่เข้ามาติดตามผลงานของเรา หวังว่าจะเป็นประโยชน์ แล้วพบกันใหม่ใน Series หน้า 🖐

#PowerBI #TripetchIT #PowerBITheSeries #ExportData #DataScience #DataSci #DataAnalytic #Dashboard #Report #Excel #Visualization #Chart #Graph #DataAnalyst #Analyst #Analysis #Data #IT

บทความก่อนหน้า

The author

  • Patcharanut Ittidetwatthana (Pond)
  • Suebsak Watcharothai (Pe)
  • Tanakrit Taeyanuluk (Hope)
  • Pimchanok Kaewbooddee (Oil)

Credit:

https://www.9experttraining.com/articles/รู้จักกับโครงสร้างข้อมูล-แบบ-dimensional-model

--

--