Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Star Schema คืออะไร?

Star Schema เป็นข้อตกลงสำหรับสร้างข้อมูลเป็น Dimension Tables, Fact Tables และ Materialized Views ข้อมูลทั้งหมดจัดเก็บในคอลัมน์ และต้องการ Metadata เพื่อระบุคอลัมน์ที่ทำหน้าที่เป็น Multidimensional Objects

Star Schema เป็น Relational Schema ที่การออกแบบกำหนด Multidimensional Data Model Star Schema คือ Schema ของ Data Warehouse ที่ชัดเจน เรียกว่า Star Schema เพราะ Entity-Relationship Diagram ของ Schema นี้เลียนแบบดาว จุดต่างๆ แยกออกจากตารางกลาง กลางของ Schema มี Fact Table ขนาดใหญ่ และดาวคือ Dimension Table

Dimension Tables (ตารางมิติ)

Star Schema จัดเก็บข้อมูลทั้งหมดเกี่ยวกับ Dimension ในตารางเดียว แต่ละระดับของ Hierarchy ถูกกำหนดโดยคอลัมน์หรือชุดคอลัมน์ใน Dimension Table Dimension Object สามารถใช้เพื่ออธิบายความสัมพันธ์ลำดับชั้นระหว่างสองคอลัมน์ (หรือชุดคอลัมน์) ที่กำหนดสองระดับของ Hierarchy โดยไม่มี Dimension Object ความสัมพันธ์ลำดับชั้นแสดงเฉพาะใน Metadata Attributes จัดเก็บในคอลัมน์ของ Dimension Tables

Fact Tables (ตารางข้อเท็จจริง)

Measures จัดเก็บใน Fact Tables Fact Tables ประกอบด้วย Composite Primary Key ซึ่งประกอบด้วย Foreign Keys หลายตัว (หนึ่งสำหรับแต่ละ Dimension Table) และคอลัมน์สำหรับแต่ละ Measure ที่ใช้ Dimensions เหล่านี้

Materialized Views (มุมมองที่สร้างสำเร็จ)

Aggregate Data คำนวณจากความสัมพันธ์ลำดับชั้นที่แสดงใน Dimension Tables Aggregates เหล่านี้จัดเก็บในตารางอิสระ เรียกว่า Summary Tables หรือ Materialized Views Oracle ให้การสนับสนุน Materialized Views อย่างกว้างขวาง รวมถึง Automatic Refresh และ Query Rewrite

Queries สามารถเขียนได้ทั้งต่อ Fact Table หรือต่อ Materialized View หาก Query เขียนต่อ Fact Table ที่ต้องการ Aggregate Data สำหรับ Result Set Query จะถูก Redirect โดย Query Rewrite ไปยัง Materialized View ที่มีอยู่ หรือข้อมูลจะถูก Aggregate On-the-fly

คุณสมบัติของ Star Schema

  • ใช้สร้างฐานข้อมูล DE-normalized ที่รองรับ Query Response ได้อย่างรวดเร็ว

  • ให้การออกแบบที่ยืดหยุ่น สามารถเปลี่ยนแปลงหรือเพิ่มเติมได้ง่ายตลอด Development Cycle และเมื่อฐานข้อมูลเติบโต

  • ให้การออกแบบที่ขนานกับวิธีที่ End-users มักคิดและใช้ข้อมูล

  • สามารถลดความซับซ้อนของ Metadata สำหรับทั้ง Developers และ End-users