Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Khác Biệt Giữa Star Schema Và Snowflake Schema


Star Schema (Sơ đồ Sao)

Star schema là quy ước tổ chức dữ liệu thành dimension tables (bảng chiều), fact tables (bảng sự kiện) và materialized views (khung nhìn vật chất hóa). Tất cả dữ liệu lưu trong cột, metadata cần thiết để xác định cột hoạt động như đối tượng đa chiều.

Star schema là lược đồ quan hệ mà thiết kế của nó mô tả mô hình dữ liệu đa chiều. Đây là lược đồ kho dữ liệu tường minh. Được gọi là star schema vì sơ đồ thực thể-mối quan hệ của lược đồ này giống một ngôi sao, với các điểm phát ra từ bảng trung tâm. Trung tâm chứa fact table lớn, các điểm của ngôi sao là dimension tables.

Snowflake Schema (Sơ đồ Tuyết Rơi)

Snowflake schema là biến thể của mô hình star schema, nơi một số dimension tables được chuẩn hóa (normalized), chia thêm dữ liệu thành nhiều bảng hơn. Đồ thị lược đồ kết quả hình thành hình dáng giống bông tuyết.

Snowflake schema là mở rộng của star schema nơi mỗi điểm của ngôi sao nhánh ra thành nhiều điểm hơn. Được gọi là snowflake vì sơ đồ mô phỏng bông tuyết. Snowflaking là phương pháp chuẩn hóa dimension tables trong STAR schemas. Khi chuẩn hóa hoàn toàn một số dimension tables, cấu trúc kết quả giống bông tuyết với fact table ở giữa.

Khác biệt giữa snowflake và star schema là dimension tables của snowflake có thể được giữ ở dạng chuẩn hóa. Bảng như vậy dễ bảo trì hơn và tiết kiệm không gian lưu trữ vì dimension table lớn có thể rất lớn khi cấu trúc chiều tham gia như cột.

Vì nhiều không gian này là thông tin dư thừa, cấu trúc chuẩn hóa sẽ giảm yêu cầu không gian tổng thể. Tuy nhiên, cấu trúc snowflake có thể giảm hiệu suất duyệt vì cần nhiều join hơn để thực hiện truy vấn. Do đó, hiệu suất hệ thống có thể bị ảnh hưởng tiêu cực. Benchmark hiệu suất có thể dùng để quyết định thiết kế tốt nhất.

Bảng So Sánh

Star SchemaSnowflake Schema
Thiết kế cơ sở dữ liệu đơn giản.Thiết kế cơ sở dữ liệu phức tạp.
Chỉ một join tạo mối quan hệ giữa fact table và dimension tables.Cần nhiều join để truy xuất dữ liệu.
Xử lý cube nhanh hơn.Xử lý cube có thể chậm do join phức tạp.
Không sử dụng chuẩn hóa.Sử dụng chuẩn hóa và phi chuẩn hóa.
Sử dụng ít join hơn.Sử dụng nhiều join hơn.