Know About Major Schema: Star vs. Snowflake
เผยแพร่แล้ว: 2022-08-26สคีมาหลายมิติออกแบบมาเพื่อสร้างแบบจำลองระบบคลังข้อมูล
วัตถุประสงค์หลักของสคีมาเหล่านี้คือเพื่อตอบสนองความต้องการของฐานข้อมูลขนาดใหญ่ที่สร้างขึ้นเพื่อวัตถุประสงค์ในการวิเคราะห์ (OLAP)
วิธีนี้ใช้เพื่อจัดลำดับข้อมูลในฐานข้อมูลด้วยการจัดเรียงเนื้อหาในฐานข้อมูลให้ดี สคีมาช่วยให้ลูกค้าสามารถถามคำถามเกี่ยวกับแนวโน้มธุรกิจหรือตลาดได้
นอกจากนี้ สกีมาหลายมิติยังแสดงข้อมูลในรูปแบบของคิวบ์ข้อมูล ซึ่งช่วยให้สามารถดูและสร้างโมเดลข้อมูลจากเปอร์สเปคทีฟและมิติต่างๆ
มีสามประเภท แต่หลายคนสับสนระหว่างดวงดาวกับเกล็ดหิมะ ดังนั้นจึงเป็นเรื่องยากสำหรับพวกเขาที่จะเลือกรุ่นที่ต้องการ
หากคุณเป็นหนึ่งในนั้น เรามาพูดถึงความแตกต่างระหว่างสคีมาดาวและเกล็ดหิมะ โดยเริ่มจากคำจำกัดความและทำความเข้าใจถึงประโยชน์ ความท้าทาย แผนภาพ และคุณลักษณะ
สคีมาหลายมิติคืออะไร
สคีมาหมายถึงคำอธิบายเชิงตรรกะของฐานข้อมูลที่สมบูรณ์และดาต้ามาร์ท ประกอบด้วยชื่อของเรกคอร์ดและคำอธิบาย ซึ่งรวมถึงการรวมและรายการข้อมูลที่เกี่ยวข้อง
โดยทั่วไปฐานข้อมูลใช้แบบจำลองเชิงสัมพันธ์เพื่ออธิบาย ในขณะที่ระบบคลังข้อมูลใช้แบบจำลองสคีมา
สคีมาหลายมิติสามารถกำหนดได้ด้วย Data Mining Query Language (DMQL)
ในการกำหนดดาต้ามาร์ทและคลังข้อมูล จะใช้สองพื้นฐาน – นิยามมิติและนิยามคิวบ์
สคีมาหลายมิติใช้โมเดลสคีมาประเภทต่างๆ พวกเขาคือ:
- สตาร์สคีมา
- สคีมาเกล็ดหิมะ
- สคีมากาแล็กซี่
มาคุยกันว่าสคีมาของดาวและเกล็ดหิมะคืออะไร
Star vs. Snowflake: พวกมันคืออะไร?

Star Schema คืออะไร?
สคีมาแบบดาวคือคลังข้อมูลสถาปัตยกรรมและโมเดลธุรกิจอัจฉริยะที่ต้องการตารางข้อเท็จจริงเดียวเพื่อจัดเก็บข้อมูลที่วัดและธุรกรรม นอกจากนี้ยังใช้ตารางมิติที่เล็กกว่าที่แตกต่างกันเพื่อเก็บแอตทริบิวต์เกี่ยวกับข้อมูลทางธุรกิจ
มีชื่อตามโครงสร้าง เช่นเดียวกับดาว ตารางข้อเท็จจริงจะอยู่ตรงกลางของแผนภาพ และตารางมิติขนาดเล็กจะนั่งเหมือนกิ่งก้านไปที่โต๊ะกลางเพื่อสร้างโครงสร้างคล้ายดาว
สคีมาแบบดาวทุกอันประกอบด้วยตารางแฟคท์เดียวแต่ตารางไดเมนชันขนาดเล็กหลายตาราง ตารางข้อเท็จจริงประกอบด้วยข้อมูลเฉพาะที่สามารถวัดผลได้ซึ่งจำเป็นต้องได้รับการวิเคราะห์ เช่น ประสิทธิภาพที่บันทึกไว้ ข้อมูลทางการเงิน หรือบันทึกการขาย อาจเป็นข้อมูลในอดีตในคราวเดียวหรือทางธุรกรรม
ยิ่งไปกว่านั้น Star schema นั้นเรียบง่ายและเป็นพื้นฐานที่สุดในบรรดาคลังข้อมูลและ data mart schema มีประสิทธิภาพในการจัดการคำถามพื้นฐาน โดยทั่วไปสคีมาแบบสตาร์จะสนับสนุนข่าวกรองธุรกิจ การสืบค้นเฉพาะกิจ แอปพลิเคชันการวิเคราะห์ และคิวบ์การประมวลผลการวิเคราะห์ออนไลน์
สคีมาแบบดาวยังสนับสนุนการนับ ค่าเฉลี่ย ผลรวม และการรวมอื่นๆ ของเร็กคอร์ดจำนวนมาก ผู้ใช้สามารถกรองและจัดกลุ่มการรวมตามมิติข้อมูลได้อย่างง่ายดาย ตัวอย่างเช่น ผู้ใช้สร้างข้อความค้นหา เช่น "ค้นหาบันทึกการขายทั้งหมดในเดือนมิถุนายน" หรือ "วิเคราะห์รายได้รวมจากสำนักงาน XYZ ในปี 2022"
Snowflake Schema คืออะไร?

สคีมาเกล็ดหิมะคือโมเดลข้อมูลหลายมิติ ซึ่งสามารถเรียกอีกอย่างว่าส่วนขยายของสคีมาของดาว เนื่องจากตารางไดเมนชันในสคีมาเกล็ดหิมะแบ่งออกเป็นส่วนย่อย
สคีมาคือเกล็ดหิมะ ถ้าตารางไดเมนชันตั้งแต่หนึ่งตารางขึ้นไปไม่เชื่อมโยงโดยตรงกับตารางแฟคท์ แต่เชื่อมต่อผ่านตารางไดเมนชันอื่น
เกล็ดหิมะเป็นปรากฏการณ์ที่ทำให้ตารางมิติเป็นปกติในสคีมาแบบดาว เมื่อคุณปรับตารางไดเมนชันทั้งหมดให้เป็นมาตรฐาน โครงสร้างผลลัพธ์จะคล้ายกับเกล็ดหิมะที่มีตารางแฟคท์อยู่ตรงกลางของโครงสร้าง
พูดง่ายๆ ก็คือ สคีมาเกล็ดหิมะประกอบด้วยตารางแฟคท์หนึ่งตารางที่อยู่ตรงกลางของโมเดล ซึ่งเชื่อมต่อกับตารางไดเมนชัน ซึ่งเชื่อมโยงกับตารางไดเมนชันอื่นอีกครั้ง สคีมานี้ใช้เพื่อเพิ่มประสิทธิภาพการสืบค้น
โมเดลนี้สร้างขึ้นเพื่อการสืบค้นที่รวดเร็วและยืดหยุ่นในความสัมพันธ์และมิติที่ซับซ้อน เป็นประโยชน์สำหรับความสัมพันธ์แบบหนึ่งต่อหลายคนและหลายต่อหลายคนในระดับมิติต่างๆ
เนื่องจากการปฏิบัติตามมาตรฐานการทำให้เป็นมาตรฐานที่เข้มงวดยิ่งขึ้น คุณจะได้รับประสิทธิภาพการจัดเก็บที่มากขึ้น แต่ความซ้ำซ้อนของข้อมูลนั้นน้อยมาก และประสิทธิภาพก็ต่ำเมื่อเทียบกับแบบจำลองข้อมูลที่ไม่ปกติ เช่น สตาร์สคีมา
Star vs. Snowflake: มันทำงานอย่างไร?

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

ลองนึกถึงการออกแบบเกล็ดหิมะที่มีกล่องตรงกลางและการเชื่อมต่อต่างๆ ผ่านกล่องนั้นไปยังจุดต่างๆ เพื่อรักษาดาต้ามาร์ทและคลังข้อมูล การออกแบบสคีมาเกล็ดหิมะจะปรากฎอยู่ในภาพ
คล้ายกับสคีมาดาวแต่มีการเปลี่ยนแปลงในนาที สคีมาเกล็ดหิมะแตกต่างจากสคีมาแบบดาวตรงที่ขยายตารางมิติย่อย ซึ่งเชื่อมโยงกับตารางไดเมนชัน
จุดประสงค์หลักของโมเดลนี้คือการทำให้ข้อมูลดีนอร์มัลไลซ์ของโมเดลดาวเป็นปกติ วิธีนี้จะช่วยแก้ปัญหาทั่วไปที่เกี่ยวข้องกับสคีมาแบบดาวได้
ที่แกนหลักของสคีมา คุณจะพบตารางแฟคท์ที่เชื่อมโยงกับข้อมูลที่อยู่ในตารางไดเมนชัน ตารางเหล่านี้แผ่ออกไปด้านนอกอีกครั้งไปยังตารางมิติย่อยที่มีข้อมูลรายละเอียดที่อธิบายข้อมูลตารางมิติ
ตัวอย่าง: สคีมาเกล็ดหิมะประกอบด้วยตารางข้อมูลการขายและตำแหน่งร้านค้า บรรทัด ครอบครัว ผลิตภัณฑ์ และตารางมิติเวลา มิติของตลาดประกอบด้วยตารางมิติสองตาราง โดยที่ร้านค้าเป็นตารางมิติหลัก และตำแหน่งของร้านค้าเป็นตารางมิติย่อย มิติผลิตภัณฑ์มีตารางมิติย่อยสามตารางที่กล่าวถึงผลิตภัณฑ์ รายการ และตารางมิติย่อยของครอบครัว
Star vs. Snowflake: ลักษณะเฉพาะ

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

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

ข้อจำกัดของ Snowflake Schema
ข้อจำกัดหลักที่คุณจะพบได้จาก Snowflake คือความพยายามในการบำรุงรักษาเพิ่มเติม เนื่องจากตารางขนาดเล็กมีจำนวนเพิ่มขึ้น ข้อความค้นหาที่ซับซ้อนจำนวนมากทำให้การค้นหาข้อมูลที่ต้องการทำได้ยาก นอกจากนี้ เวลาดำเนินการของคำถามสูงเนื่องจากตารางที่สูงขึ้น โมเดลนี้มีความแข็งแกร่งและต้องการค่าบำรุงรักษาที่สูงขึ้น
Star vs. Snowflake: ความแตกต่าง

Star และ Snowflake เป็นประเภทของสคีมาหลายมิติ แต่มีโครงสร้างและคุณสมบัติต่างกัน อันแรกเป็นเหมือนดาวฤกษ์ และอันหลังคล้ายกับเกล็ดหิมะซึ่งกำหนดชื่อไว้
ในสคีมาแบบดาว การรวมเพียงครั้งเดียวเท่านั้นที่สร้างความสัมพันธ์ระหว่างตารางแฟคท์กลางและตารางไดเมนชันด้านข้าง ในทางกลับกัน ในสคีมาเกล็ดหิมะ จำเป็นต้องมีการรวมหลายรายการเพื่อลิงก์ไปยังตารางไดเมนชัน
โดยทั่วไปแล้วสตาร์สคีมาจะใช้เมื่อคุณมีจำนวนแถวน้อยกว่าในตารางไดเมนชัน ในขณะที่สคีมาเกล็ดหิมะจะใช้เมื่อตารางไดเมนชันค่อนข้างใหญ่
ไดอะแกรมด้านล่างแยกความแตกต่างระหว่างสองโมเดล และวิธีที่ตารางไดเมนชันและตารางแฟคท์เชื่อมโยงกันในสคีมาที่ต่างกัน
พารามิเตอร์ | สตาร์ สคีมา | สคีมาเกล็ดหิมะ |
พื้นที่ดิสก์ | Star schema ใช้พื้นที่ดิสก์มากขึ้น | สคีมาเกล็ดหิมะใช้พื้นที่ดิสก์น้อยลง |
ความซ้ำซ้อนของข้อมูล | มีความซ้ำซ้อนของข้อมูลสูง | มีความซ้ำซ้อนของข้อมูลต่ำ |
การทำให้เป็นมาตรฐาน | ตารางไดเมนชันถูกดีนอร์มัลไลซ์ ซึ่งหมายถึงการทำซ้ำค่าเดิมภายในตาราง | ตารางมิติถูกทำให้เป็นมาตรฐานอย่างสมบูรณ์ |
ประสิทธิภาพของแบบสอบถาม | ใช้เวลาน้อยที่สุดในการดำเนินการค้นหา ส่งผลให้ประสิทธิภาพดีขึ้น | การดำเนินการค้นหาใช้เวลานานกว่าแบบ star schema ทำให้มีประสิทธิภาพน้อยกว่า star schema |
ความซับซ้อนของแบบสอบถาม | ความซับซ้อนของแบบสอบถามต่ำ | ความซับซ้อนของคิวรีสูงกว่าสตาร์สคีมา |
การซ่อมบำรุง | เนื่องจากมีความซ้ำซ้อนของข้อมูลสูง การรักษาสคีมาระดับดาวจึงค่อนข้างยาก | เนื่องจากความซ้ำซ้อนของข้อมูลต่ำ จึงง่ายต่อการบำรุงรักษาและเปลี่ยนสคีมาเกล็ดหิมะ |
ความสมบูรณ์ของข้อมูล | ความสมบูรณ์ของข้อมูลอยู่ในระดับสูง เนื่องจากข้อมูลถูกจัดเก็บซ้ำซ้อนซึ่งมีสำเนาหลายชุดอยู่ในตารางไดเมนชัน | ความสมบูรณ์ของข้อมูลต่ำ เนื่องจากทำให้ตารางมิติเป็นปกติอย่างสมบูรณ์ |
ลำดับชั้น | ลำดับชั้นสำหรับตารางไดเมนชันในสคีมาแบบดาวจะถูกเก็บไว้ในตารางไดเมนชัน | ลำดับชั้นแบ่งออกเป็นตารางมิติที่แยกจากกัน |
การออกแบบฐานข้อมูล | มีการออกแบบ DB ที่เรียบง่าย | มีการออกแบบ DB ที่ซับซ้อนมาก |
ตารางข้อเท็จจริง | ตารางหลายมิติล้อมรอบตารางข้อเท็จจริง | ตารางข้อเท็จจริงล้อมรอบด้วยตารางไดเมนชันซึ่งล้อมรอบด้วยตารางไดเมนชันย่อยด้วย |
ติดตั้ง | สคีมาระดับดาวนั้นง่ายต่อการออกแบบและตั้งค่าเนื่องจากความสัมพันธ์โดยตรงเป็นตัวแทน | ในทางกลับกัน สคีมาของเกล็ดหิมะนั้นค่อนข้างซับซ้อนในการตั้งค่า |
การประมวลผลลูกบาศก์ | การประมวลผลคิวบ์เร็วขึ้น | เนื่องจากการรวมที่ซับซ้อน การประมวลผลคิวบ์จึงช้าเล็กน้อย |
กุญแจต่างประเทศ | มีจำนวนคีย์ต่างประเทศขั้นต่ำ | มีจำนวนคีย์ต่างประเทศสูงสุด |
บทสรุป
สกีมาทั้งแบบ Star และ Snowflake มีประโยชน์ในภาคส่วนต่างๆ ดังนั้นการตัดสินใจเลือกสิ่งที่ดีที่สุดในหมู่พวกเขานั้นขึ้นอยู่กับความต้องการของพวกเขา
สคีมาเกล็ดหิมะเป็นส่วนขยายของสคีมาแบบดาว ซึ่งจะทำให้ตารางมิติในสคีมาแบบดาวเป็นปกติ
สคีมาแบบดาวมีการออกแบบที่เรียบง่าย เรียกใช้การสืบค้นได้เร็วขึ้น และการตั้งค่าทำได้ง่าย ในทางกลับกัน สคีมาเกล็ดหิมะนั้นง่ายต่อการบำรุงรักษา ใช้พื้นที่ดิสก์น้อยลง และมีแนวโน้มที่จะเกิดปัญหาความสมบูรณ์ของข้อมูลน้อยกว่า
ดังนั้น สคีมาแบบดาวอาจเป็นตัวเลือกที่ดีกว่า หากคุณต้องการการออกแบบที่เรียบง่าย คีย์นอกที่น้อยลง และการประมวลผลคิวบ์ที่เร็วขึ้น แต่ถ้าคุณต้องการพื้นที่ดิสก์น้อยลง ความสมบูรณ์ของข้อมูลต่ำ และการบำรุงรักษาต่ำ สคีมาเกล็ดหิมะอาจเหมาะสมกว่า
คุณอาจสำรวจโซลูชันฐานข้อมูลกราฟที่ดีที่สุด