นี่คือการตอบโจทย์:
ฉันพยายามทำความเข้าใจว่าตารางมิติสามารถเป็นตารางข้อเท็จจริงได้หรือไม่?
คำตอบสั้น ๆ (INMO) คือ No นั่นเป็นเพราะตาราง 2 ประเภทถูกสร้างขึ้นด้วยเหตุผลที่แตกต่างกัน อย่างไรก็ตามจากมุมมองการออกแบบฐานข้อมูลตารางมิติอาจมีตารางพาเรนต์เป็นกรณีที่มีตารางข้อเท็จจริงซึ่งมีตารางมิติ (หรือมากกว่า) เป็นพาเรนต์เสมอ นอกจากนี้อาจมีการรวบรวมตารางข้อเท็จจริงในขณะที่ตารางมิติข้อมูลจะไม่รวม อีกเหตุผลหนึ่งคือไม่ควรอัปเดตตารางข้อเท็จจริงในขณะที่ตารางมิติสามารถอัปเดตได้ในบางกรณี
รายละเอียดเพิ่มเติม:
ตารางข้อเท็จจริงและมิติข้อมูลปรากฏในสิ่งที่เรียกกันทั่วไปว่าสคีมาดาว จุดประสงค์หลักของสคีมาแบบดาวคือการลดความซับซ้อนของชุดตารางปกติที่ซับซ้อนและรวมข้อมูล (อาจมาจากระบบที่แตกต่างกัน) ให้เป็นโครงสร้างฐานข้อมูลเดียวที่สามารถสืบค้นได้อย่างมีประสิทธิภาพ
ในรูปแบบที่ง่ายที่สุดประกอบด้วยตารางข้อเท็จจริง (ตัวอย่าง: StoreSales) และตารางมิติข้อมูลอย่างน้อยหนึ่งตาราง รายการมิติข้อมูลแต่ละรายการมีตารางข้อเท็จจริง 0,1 หรือมากกว่าที่เกี่ยวข้อง (ตัวอย่างของตารางมิติ: ภูมิศาสตร์รายการซัพพลายเออร์ลูกค้าเวลา ฯลฯ ) มันจะถูกต้องเช่นกันสำหรับมิติที่จะมีพาเรนต์ซึ่งในกรณีนี้โมเดลจะเป็นประเภท "เกล็ดหิมะ" อย่างไรก็ตามนักออกแบบพยายามหลีกเลี่ยงการออกแบบประเภทนี้เนื่องจากทำให้เกิดการรวมที่มีประสิทธิภาพช้ามากขึ้น ในตัวอย่างของ StoreSales มิติทางภูมิศาสตร์อาจประกอบด้วยคอลัมน์ (GeoID, ContenentName, CountryName, StateProvName, CityName, StartDate, EndDate)
ในแบบจำลอง Snow Flakes คุณสามารถมีตารางปกติ 2 ตารางสำหรับข้อมูลภูมิศาสตร์ ได้แก่ ตารางเนื้อหาตารางประเทศ
คุณสามารถดูตัวอย่างมากมายใน Star Schema นอกจากนี้ตรวจสอบนี้จะเห็นมุมมองทางเลือกในรูปแบบคีดาวInmon กับคิมบอลล์ Kimbal มีฟอรั่มที่ดีคุณอาจต้องการตรวจสอบที่นี่: คิมบอลล์ฟอรั่ม
แก้ไข: หากต้องการตอบความคิดเห็นเกี่ยวกับตัวอย่างสำหรับ 4NF:
- ตัวอย่างตารางข้อเท็จจริงที่ละเมิด 4NF:
ข้อมูลการขาย (ID, BranchID, SalesPersonID, ItemID, Amount, TimeID)
- ตัวอย่างตารางข้อเท็จจริงที่ไม่ละเมิด 4NF:
AggregatedSales (BranchID, TotalAmount)
นี่คือความสัมพันธ์ใน 4NF
ตัวอย่างสุดท้ายค่อนข้างไม่ธรรมดา