วันศุกร์ที่ 26 กุมภาพันธ์ พ.ศ. 2553

Data model ในการออกแบบ Cube

การออกแบบ Cube นั้น ต้องใช้ Data model ซึ่ง Data model คือสิ่งที่ใช้ในทำให้ทราบถึงการออกแบบ ซึ่งมีหลายประเภทเช่น Data model ของ Relational Database หรือ ระบบต่างๆ ซึ่งแต่ละ Data model นั้น ก็จะมีเอกลักษณ์แต่ละตัวต่างกันออกไป ในส่วนระบบ Data Warehouse ที่มี Cube ไว้ ทำ OLAP นั้นก็มี Data Modeling ที่ใช้เพื่อในการออกแบบ Cube เฉพาะแบบของมัน โดยส่วนใหญ่ก่อนจะลง Cube จริง จะทำการออกแบบไว้ใน Data model นี้ก่อน ที่เรียกกันว่า Star schema ซึ่งเป็นแบบพื้นฐานที่สุด ของ Data Model ของ Cube

โดยหลัก ๆ การออกแบบ Data Modelของ Cube นั้นมี อยู่ 3 แบบ

Star schema นั้นเป็น Data Modeling ของ Cube นั้นเอง ที่มีรูปแบบเรียบง่ายไม่ซับซ้อน โดยมี Fact Table อยู่ตรงกลางหนึ่งตาราง และในตาราง ก็มีค่า 2 แบบ คือ Key กับ Measure และถูกเชื่อมโยงด้วย Dimension รอบข้างตามตัว Key ที่บรรจุไว้ใน Fact table โดยเก็บค่า Charatic หรือตัวอักษรไว้อธิบายความหมาย

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

Galaxy schema
เป็น Data model ที่ซับซ้อนที่สุด เนื่องจากมี Fact table มากกว่า 1 ตัวขึ้น และสามารถใช้ Dimensions table ร่วมกันได้ และอาจมี Dimensions Table ที่แยกจากกัน

เพื่อใช้สร้าง Cube ให้นำไปทำ OLAP ได้อย่างมีประสิทธิภาพ การออกแบบ Data Model ให้ดีก่อนนั้นเป็นสิ่งสำคัญ เพื่อให้เราสามารถได้รายงานออกมาตามความต้องการของผู้ใช้จริง

องค์ประกอบของ Cube

Data modeling ของ Cube นั้น ประกอบด้วย 2 ส่วนคือ Fact Table กับ Dimension Table, Fact table

โดย Fact table คือ ตารางตั้งต้นของ dimensional modelหรือ Cube โดยจะบรรจุค่าที่ใช้วัดหรือตัววัดค่าเช่น ประสิทธิภาพของธุรกิจจากการทำธุรกิจ โดยจะเก็บข้อมูลไว้ 2 ประเภทได้แก่
1. ค่าตัวเลข ไว้เพื่อแสดงผลของค่า Dimension ต่างๆ ที่ดึงมา
2. ค่า Keys เพื่อใช้โยงไปหา Dimension Table ต่างๆ ตามที่มี Key ไว้ใน Fact table บ้างก็เรียก Key เหล่านี้ว่า Foreign key หรือ Surrogate key โดยใช้ key ดังกล่าวทำหน้าที่ ใน เชื่อมโยงไปหา Dimension Table ที่ได้ใช้ในการอธิบาย

The relational database table that contains values for one or more measures at the lowest level of detail for one or more dimensions (16, SQL.Server.2005.Analysis.Services.Step.By.Step)

Dimension Table

Dimension คือ ตารางที่ใช้อธิบายความหมายของค่าต่างๆ ของ Fact table โดยเชื่อมผ่าน Key จาก Fact Table นั้นเอง
A list of labels that can be used to cross-tabulate values from other dimensions (16, SQL.Server.2005.Analysis.Services.Step.By.Step)