Snowflake Schema ในโมเดลคลังข้อมูล
⚡ สรุปอย่างชาญฉลาด
โครงสร้างข้อมูลแบบ Snowflake Schema ในการสร้างแบบจำลองคลังข้อมูล จัดเรียงตารางมิติที่ได้รับการทำให้เป็นมาตรฐาน (Normalized Dimension Tables) ซึ่งแตกแขนงออกมาจากตารางข้อเท็จจริงส่วนกลาง (Central Fact Table) คล้ายกับเกล็ดหิมะ โครงสร้างนี้เป็นการต่อยอดจากโครงสร้างแบบ Star Schema ช่วยลดความซ้ำซ้อนของข้อมูล และจัดระเบียบโครงสร้างลำดับชั้นในตารางค้นหาที่เกี่ยวข้องหลายตาราง

สคีมาเกล็ดหิมะคืออะไร?
A สคีมาเกล็ดหิมะ ในคลังข้อมูล คือการจัดเรียงตารางอย่างมีเหตุผลในฐานข้อมูลหลายมิติ ซึ่ง แผนภาพความสัมพันธ์ระหว่างเอนทิตี (ER) มีรูปร่างคล้ายเกล็ดหิมะ มันคือ แบบจำลองมิติ โดยที่ตารางข้อเท็จจริงหลักจะเชื่อมโยงกับตารางมิติ และตารางมิติเหล่านั้นจะถูกแบ่งย่อยออกเป็นตารางมิติย่อยที่เกี่ยวข้องต่อไปอีก
โครงสร้างข้อมูลแบบเกล็ดหิมะ (Snowflake Schema) เป็นส่วนขยายของโครงสร้างข้อมูลแบบดาว (Star Schema) ในขณะที่โครงสร้างข้อมูลแบบดาวเก็บแต่ละมิติไว้ในตารางเดียว โครงสร้างข้อมูลแบบเกล็ดหิมะจะทำให้มิติเหล่านั้นเป็นมาตรฐาน (Normalization) โดยแบ่งกลุ่มข้อมูลที่ซ้ำกันออกเป็นตารางค้นหาเพิ่มเติม การทำให้เป็นมาตรฐานนี้จะช่วยลดความซ้ำซ้อนและสร้างโครงสร้างแบบลำดับชั้นที่มีการแตกแขนง ซึ่งเป็นที่มาของชื่อโครงสร้างข้อมูลนี้
ตัวอย่างสคีมาเกล็ดหิมะ
ในตัวอย่างสคีมาเกล็ดหิมะต่อไปนี้ ตารางข้อเท็จจริงยอดขายจะอยู่ตรงกลาง โดยมีตารางมิติ เช่น ผลิตภัณฑ์ วันที่ และร้านค้า ล้อมรอบอยู่ แทนที่จะจัดเก็บคุณลักษณะทุกอย่างไว้ในตารางมิติเดียว ข้อมูลทางภูมิศาสตร์จะถูกปรับให้เป็นมาตรฐานโดยย้ายประเทศไปไว้ในตารางแยกต่างหาก

ในที่นี้ มิติข้อมูลร้านค้าอ้างอิงถึงตารางเมือง ตารางเมืองอ้างอิงถึงตารางรัฐ และตารางรัฐอ้างอิงถึงตารางประเทศ แต่ละค่าจะถูกจัดเก็บเพียงครั้งเดียวและเชื่อมโยงด้วยคีย์ต่างประเทศ ดังนั้นชื่อประเทศจึงไม่ซ้ำกันในข้อมูลหลายล้านแถว การทำให้เป็นรูปแบบปกติแบบหลายชั้นนี้เองที่ทำให้สกีมาแบบเกล็ดหิมะแตกต่างจากสกีมาแบบดาวแบนราบ
ลักษณะของสคีมาเกล็ดหิมะ
รูปแบบเกล็ดหิมะมีลักษณะเฉพาะหลายประการ:
- ตารางมิติแบบนอร์มาไลซ์ใช้พื้นที่ดิสก์น้อยกว่า เนื่องจากช่วยหลีกเลี่ยงการจัดเก็บค่าที่ซ้ำกัน
- สามารถเพิ่มมิติใหม่ให้กับโครงสร้างข้อมูลได้โดยใช้ความพยายามเพียงเล็กน้อย
- ประสิทธิภาพการสืบค้นข้อมูลอาจลดลง เนื่องจาก1การดึงข้อมูลต้องอาศัยการเชื่อมตารางจำนวนมากเข้าด้วยกัน
- จำเป็นต้องใช้ความพยายามในการบำรุงรักษามากขึ้น เนื่องจากต้องจัดการตารางค้นหาจำนวนมากขึ้น
วิธีออกแบบสคีมาเกล็ดหิมะ
การออกแบบสคีมาแบบเกล็ดหิมะเริ่มต้นเช่นเดียวกับการออกแบบโมเดลเชิงมิติใดๆ จากนั้นจึงเพิ่มขั้นตอนการทำให้เป็นมาตรฐาน จุดมุ่งหมายคือการระบุขั้นตอนทางธุรกิจที่คุณต้องการวิเคราะห์ สร้างโมเดลขั้นตอนดังกล่าวในรูปแบบสคีมาแบบดาวก่อน จากนั้นจึงทำให้มิติที่มีลำดับชั้นลึกเป็นมาตรฐาน ดำเนินการตามขั้นตอนต่อไปนี้:
- ระบุขั้นตอนทางธุรกิจและลักษณะเฉพาะของกระบวนการ กำหนดว่าแต่ละแถวในตารางข้อเท็จจริงแสดงถึงอะไร เช่น ธุรกรรมการขายหนึ่งรายการ และกำหนดตัวชี้วัดเชิงตัวเลข หรือข้อเท็จจริง ที่คุณต้องการรายงาน
- สร้างตารางข้อมูลหลัก เพิ่มค่าตัวเลขพร้อมกับคีย์ต่างประเทศที่ชี้ไปยังแต่ละมิติ โดยปกติแล้วคีย์ต่างประเทศเหล่านั้นจะรวมกันเป็นคีย์หลักแบบผสม
- กำหนดตารางมิติ สร้างตารางหนึ่งตารางสำหรับแต่ละมิติเชิงพรรณนา เช่น ผลิตภัณฑ์ ลูกค้า วันที่ และร้านค้า และกำหนดคีย์หลักทดแทนให้กับแต่ละตาราง
- ปรับโครงสร้างลำดับชั้นให้เป็นมาตรฐาน แยกมิติข้อมูลทุกมิติที่มีคุณลักษณะซ้ำกันออกเป็นตารางมิติย่อย ตัวอย่างเช่น ย้ายหมวดหมู่ (Category) ออกจากผลิตภัณฑ์ (Product) หรือย้ายเมือง รัฐ และประเทศ (City, State, and Country) ออกจากมิติข้อมูลร้านค้า (Store)
- เชื่อมโยงตารางต่างๆ ด้วยคีย์ต่างประเทศ เชื่อมโยงมิติย่อยแต่ละมิติกลับไปยังตารางหลัก เพื่อให้กิ่งก้านสาขาเกิดเป็นลำดับชั้นแบบหนึ่งต่อหลายที่ชัดเจน คล้ายกับเกล็ดหิมะ
- ตรวจสอบและทดสอบด้วยคำสั่งค้นหา เรียกใช้แบบสอบถามการรายงานตัวอย่างเพื่อยืนยันว่าการเชื่อมต่อข้อมูลให้ผลลัพธ์ที่ถูกต้อง และประสิทธิภาพโดยรวมยังคงอยู่ในระดับที่ยอมรับได้
เนื่องจากการออกแบบจะปรับข้อมูลให้เป็นรูปแบบปกติที่สาม (third normal form) จึงควรบันทึกเส้นทางการเชื่อมต่อ (join paths) อย่างชัดเจน เพื่อให้นักวิเคราะห์เข้าใจวิธีการนำทางไปยังแต่ละสาขา เมื่อกำหนดโครงสร้างแล้ว ควรพิจารณาถึงข้อดีของสคีมาเทียบกับต้นทุน
ข้อดีของสคีมาเกล็ดหิมะ
รูปแบบสัญลักษณ์เกล็ดหิมะมีข้อดีหลายประการ:
- ข้อได้เปรียบหลักคือการลดพื้นที่จัดเก็บข้อมูลบนดิสก์ เนื่องจากการรวมตารางค้นหาแบบนอร์มาไลซ์ขนาดเล็กเข้าด้วยกันจะช่วยหลีกเลี่ยงการทำซ้ำข้อมูลมิติ
- ช่วยให้สามารถปรับขนาดความสัมพันธ์ระหว่างส่วนประกอบและระดับมิติได้อย่างยืดหยุ่นมากขึ้น
- มันช่วยลดความซ้ำซ้อน ซึ่งช่วยปรับปรุงความถูกต้องของข้อมูลและทำให้โมเดลดูแลรักษาง่ายขึ้น
- คุณลักษณะเชิงพรรณนาจะได้รับการอัปเดตเพียงที่เดียว ซึ่งช่วยลดความเสี่ยงของข้อมูลที่ไม่สอดคล้องกัน
ข้อเสียของสคีมาเกล็ดหิมะ
การออกแบบนี้ยังมีข้อแลกเปลี่ยนที่ต้องพิจารณาด้วย:
- โครงสร้างแบบนอร์มาไลซ์ทำให้การบำรุงรักษาที่จำเป็นสำหรับการจัดการตารางที่เกี่ยวข้องจำนวนมากเพิ่มขึ้น
- การเขียนและทำความเข้าใจแบบสอบถามที่ซับซ้อนซึ่งครอบคลุมการเชื่อมต่อหลายรายการอาจทำได้ยาก
- จำนวนตารางที่มากขึ้นหมายถึงการเชื่อมต่อตารางที่มากขึ้น ซึ่งจะทำให้เวลาในการประมวลผลคำสั่งค้นหาข้อมูลนานขึ้น
- ผู้ใช้งานทางธุรกิจมักพบว่าโมเดลแบบแตกแขนงนั้นใช้งานยากกว่าโมเดลแบบดาวที่เรียบง่ายกว่า
แผนผังเกล็ดหิมะเทียบกับแผนผังดาว
โครงร่างเกล็ดหิมะและ สคีมาดาว สคีมาแบบดาว (Star Schema) และสคีมาแบบเกล็ดหิมะ (Snowflake Schema) เป็นโครงสร้างข้อมูลหลายมิติที่พบได้บ่อยที่สุดสองแบบในคลังข้อมูล และความแตกต่างที่สำคัญระหว่างทั้งสองแบบคือการทำให้เป็นมาตรฐาน (Normalization) สคีมาแบบดาวจะเก็บแต่ละมิติไว้ในตารางเดียวที่ไม่เป็นมาตรฐาน เพื่อให้ได้ความเร็วในการสืบค้นสูงสุด ในขณะที่สคีมาแบบเกล็ดหิมะจะทำให้มิติเหล่านั้นเป็นมาตรฐานโดยแบ่งออกเป็นหลายตารางที่เกี่ยวข้องกัน เพื่อประหยัดพื้นที่จัดเก็บและปกป้องความสมบูรณ์ของข้อมูล ด้วยเหตุนี้ สคีมาทั้งสองแบบจึงเหมาะกับลำดับความสำคัญที่แตกต่างกัน
| แง่มุม | สคีมาของดาว | สคีมาเกล็ดหิมะ |
|---|---|---|
| ตารางมิติ | ลดความซ้ำซ้อนของข้อมูล โดยมีตารางหนึ่งตารางต่อหนึ่งมิติ | แปลงเป็นตารางมิติย่อยมาตรฐาน |
| พื้นที่จัดเก็บ | ใช้พื้นที่มากขึ้นเนื่องจากความซ้ำซ้อน | ใช้พื้นที่น้อยลง ไม่มีส่วนที่ซ้ำซ้อน |
| ประสิทธิภาพการสืบค้น | เร็วขึ้น เชื่อมต่อกันน้อยลง | ช้าลง มีจุดเชื่อมต่อมากขึ้น |
| ความซับซ้อนของแบบสอบถาม | เขียนง่าย | ซับซ้อนยิ่งขึ้น |
| เหมาะที่สุดสำหรับ | การรายงานที่รวดเร็วและระบบ Business Intelligence (BI) | มิติขนาดใหญ่แบบลำดับชั้น |
โดยสรุป ควรเลือกใช้สคีมาแบบดาว (Star Schema) เมื่อความเร็วในการสืบค้นข้อมูลและความเรียบง่ายของการรายงานมีความสำคัญที่สุด และควรเลือกใช้สคีมาแบบเกล็ดหิมะ (Snowflake Schema) เมื่อประสิทธิภาพในการจัดเก็บข้อมูล ลำดับชั้นที่ชัดเจน และความซ้ำซ้อนของข้อมูลต่ำเป็นสิ่งสำคัญกว่า คลังข้อมูลจริงหลายแห่งผสมผสานทั้งสองรูปแบบเข้าด้วยกัน ขึ้นอยู่กับขนาดและความลึกของแต่ละมิติ
ควรใช้สคีมา Snowflake เมื่อใด
รูปแบบโครงสร้างข้อมูลแบบเกล็ดหิมะอาจไม่ใช่ตัวเลือกที่เหมาะสมเสมอไป ดังนั้นควรออกแบบให้เหมาะสมกับปริมาณงานและความต้องการในการรายงาน โดยทั่วไปแล้วจะใช้งานได้ดีที่สุดในสถานการณ์ต่อไปนี้:
- มิติข้อมูลมีขนาดใหญ่มากและมีคุณลักษณะที่ซ้ำกันจำนวนมาก ซึ่งทำให้สิ้นเปลืองพื้นที่จัดเก็บเมื่อทำการลดความซ้ำซ้อนของข้อมูล
- มิติข้อมูลมีลำดับชั้นที่ลึกและชัดเจน เช่น จากภูมิภาคไปยังประเทศ ไปยังรัฐ ไปยังเมือง ซึ่งจะจับคู่กับตารางแยกต่างหากได้อย่างเป็นธรรมชาติ
- ความถูกต้องและความสม่ำเสมอของข้อมูลมีความสำคัญต่อโครงการนี้มากกว่าความเร็วในการสืบค้นข้อมูลเสียอีก
- ต้นทุนการจัดเก็บข้อมูลเป็นเรื่องที่น่ากังวลอย่างแท้จริง และการประหยัดพื้นที่ดิสก์ในตารางข้อมูลขนาดใหญ่ก็มีความสำคัญอย่างยิ่ง
- โมเดลนี้ป้อนข้อมูล สพป เครื่องมือที่สามารถนำทางโครงสร้างลำดับชั้นแบบมาตรฐานได้อย่างมีประสิทธิภาพ
ในทางกลับกัน เมื่อการสร้างรายงานที่รวดเร็วและง่ายดายสำหรับนักวิเคราะห์ธุรกิจเป็นสิ่งสำคัญ โครงสร้างข้อมูลแบบสตาร์สคีมาหรือคลัสเตอร์สตาร์แบบไฮบริดมักจะเหมาะสมกว่า สถาปัตยกรรมคลังข้อมูล จงใจผสมผสานทั้งสองแนวทางเข้าด้วยกันเพื่อสร้างสมดุลระหว่างความเร็วและพื้นที่จัดเก็บข้อมูล
กาแล็กซีสคีมาคืออะไร?
A สคีมาของกาแล็กซี โครงสร้างข้อมูลแบบนี้ประกอบด้วยตารางข้อเท็จจริงสองตารางขึ้นไปที่ใช้ตารางมิติร่วมกัน เรียกอีกอย่างว่า โครงสร้างข้อมูลแบบกลุ่มข้อเท็จจริง (Fact Constellation Schema) และเนื่องจากสามารถมองได้ว่าเป็นกลุ่มดาว จึงได้ชื่อว่า โครงสร้างข้อมูลแบบกาแล็กซี (Galaxy Schema)

ดังที่คุณเห็นในตัวอย่างข้างต้น มีตารางข้อเท็จจริงอยู่สองตาราง:
- Revเข้าแล้ว
- สินค้า
ในสคีมาแบบกาแล็กซี มิติที่ใช้ร่วมกันระหว่างตารางข้อเท็จจริงเรียกว่า มิติที่สอดคล้องกัน
ลักษณะของ Galaxy Schema
โครงสร้างกาแล็กซีมีลักษณะดังต่อไปนี้:
- มิติเหล่านั้นถูกแบ่งออกเป็นมิติที่แตกต่างกันตามระดับต่างๆ ของลำดับชั้น
- ตัวอย่างเช่น หากภูมิศาสตร์มีลำดับชั้นสี่ระดับ ได้แก่ ภูมิภาค ประเทศ รัฐ และเมือง โครงสร้างแบบกาแล็กซีก็ควรมีสี่มิติเช่นกัน
- สามารถสร้างโครงสร้างข้อมูลประเภทนี้ได้โดยการแบ่งโครงสร้างข้อมูลแบบดาวเดี่ยวออกเป็นโครงสร้างข้อมูลแบบดาวหลายๆ โครงสร้าง
- มิติในแผนผังนี้มีขนาดใหญ่และต้องสร้างขึ้นตามระดับของลำดับชั้น
- โครงสร้างข้อมูลนี้มีประโยชน์สำหรับการรวบรวมตารางข้อเท็จจริงเพื่อสนับสนุนการวิเคราะห์และทำความเข้าใจที่ดีขึ้น
สตาร์คืออะไร Cluster สคีมา?
โครงสร้างข้อมูลแบบเกล็ดหิมะ (Snowflake schema) ประกอบด้วยลำดับชั้นที่ขยายเต็มที่ ซึ่งอาจเพิ่มความซับซ้อนและต้องใช้การเชื่อมต่อเพิ่มเติม ในทางกลับกัน โครงสร้างข้อมูลแบบดาว (Star schema) ประกอบด้วยลำดับชั้นที่ยุบเต็มที่ ซึ่งอาจนำไปสู่ความซ้ำซ้อน ทางออกที่ดีที่สุดมักเป็นการผสมผสานระหว่างสองแบบนี้ ซึ่งเรียกว่า โครงสร้างข้อมูลแบบดาว (Star schema) Cluster สคีมา

คาบเกี่ยวกันping มิติจะปรากฏเป็นรูปแยกในลำดับชั้น การแยกเกิดขึ้นเมื่อเอนทิตีหนึ่งทำหน้าที่เป็นผู้ปกครองในลำดับชั้นมิติที่แตกต่างกันสองลำดับ จากนั้นเอนทิตีที่แยกออกมาเหล่านี้จะถูกระบุว่าเป็นหมวดหมู่ที่มีความสัมพันธ์แบบหนึ่งต่อหลาย ซึ่งจะช่วยจำกัดจำนวนตารางเพิ่มเติมที่การออกแบบสร้างขึ้น
