You are on page 1of 3

Snowflake Schema

1. Snowflake Schema là gì ?

 Snowflake Schema là một mô hình thiết kế cơ sở dữ liệu được sử dụng trong


lĩnh vực lưu trữ dữ liệu.
 Snowflake Schema là một bảng khá tương đương với Star Schema.
 Tên gọi "Snowflake" ( Bông tuyết ) đến từ các biểu đồ của nó giống như một
hình bông tuyết, với bảng Fact trung tâm và các bảng Dimension trải ra như
những nhánh và them các bảng Dimension phụ trợ cho các bảng Dimension
chính.
2. Cấu trúc
• Bảng Sự Kiện (Fact Table): Bảng sự kiện trung tâm chứa thông tin chính
• Bảng Chiều Dữ Liệu (Dimension Tables): Các bảng chiều dữ liệu được
chuẩn hóa thành nhiều bảng con, tạo nên cấu trúc phân cấp.
3. Mối Quan Hệ giữa các bảng
• Mối quan hệ giữa các bảng trong sơ đồ tuyết (Snowflake Schema) là một cấu
trúc phân cấp, trong đó bảng Fact được chuẩn hóa thành các bảng
Demension. Mỗi bảng con chứa một cấp độ cụ thể của dữ liệu chiều. Điều
này tạo ra một cấu trúc cây hoặc đồ thị, giống như nhánh của một cây tuyết.
• Các bảng con này kết nối với bảng chiều dữ liệu chính thông qua khóa ngoại,
tạo ra mối quan hệ phân cấp giữa chúng.
• Mối quan hệ phân cấp này giúp tổ chức dữ liệu một cách có tổ chức và giảm
sự trùng lặp trong dữ liệu chiều. Tuy nhiên, cần lưu ý rằng sự phức tạp của
mô hình có thể tăng khi cấu trúc cây trở nên sâu và số lượng bảng con tăng
lên.
4. Ưu điểm của Mô Hình Sơ Đồ Tuyết (Snowflake Schema):
 Chuẩn Hóa Dữ Liệu:
Mô hình sơ đồ tuyết hỗ trợ chuẩn hóa dữ liệu, giảm sự trùng lặp và cải thiện tính
toàn vẹn dữ liệu.
 Hiệu Quả Lưu Trữ:
Nhờ vào việc chuẩn hóa, Snowflake schema thường dẫn đến hiệu suất lưu trữ
tốt hơn, đặc biệt khi xử lý các bộ dữ liệu lớn.
 Quản Lý Cấu Trúc Phân Cấp:
Cấu trúc phân cấp trong sơ đồ tuyết giúp tổ chức dữ liệu một cách có tổ chức,
đặc biệt là khi có các chiều dữ liệu có các cấp độ phân cấp khác nhau.
 Dễ Dàng Mở Rộng:
Cấu trúc chuẩn hóa của sơ đồ tuyết làm cho việc thêm mới các bảng chiều hoặc
mở rộng cấu trúc trở nên linh hoạt hơn. Việc quản lý mô hình và thêm mới dữ
liệu có thể trở nên dễ dàng.

5. Nhược Điểm của Mô Hình Sơ Đồ Tuyết (Snowflake Schema):


 Hiệu Suất Truy Vấn: Mô hình sơ đồ tuyết có thể gặp vấn đề về hiệu suất truy vấn
do cần thực hiện nhiều phép nối khi truy xuất dữ liệu từ các bảng Dimension.
Điều này có thể làm giảm hiệu suất đặc biệt là trong các truy vấn phức tạp.
 Tăng chi phí lưu trữ: Snowflake schema khi vào sâu hơn thường yêu cầu nhiều
bảng hơn, điều này có thể dẫn đến tăng chi phí lưu trữ do mỗi bảng đều yêu cầu
một không gian lưu trữ riêng.
 Phức Tạp Hóa Mô Hình: Sơ đồ tuyết có thể làm tăng độ phức tạp của mô hình
cơ sở dữ liệu vì cần quản lý nhiều bảng con liên quan. Điều này có thể làm tăng
khả năng phát sinh lỗi và làm cho quá trình quản lý và duy trì trở nên phức tạp
hơn.
 Khả Năng Hiểu Quả Trong Một Số Trường Hợp Cụ Thể: Trong một số trường
hợp, sơ đồ tuyết có thể không hiệu quả như mô hình sao, đặc biệt khi cần truy
vấn dữ liệu một cách nhanh chóng và hiệu quả.

Bảng so sánh
Dưới đây là các điểm chính để phân biệt giữa Star schema và Snowflake schema:

Star Schema Snowflake Schema

Các đối tượng phụ xung quanh đối tượng


Các đối tượng phụ và đối tượng chính được xây dựng tách
chính sẽ được xây dựng chung một bảng
biệt.
dimension.

Với bảng fact là trung tâm, các bảng đối tượng được xây xung
Các bảng dimension được xây dựng xung
quanh, đồng thời còn các đối tượng phụ xung quanh đối tượng
quanh một bảng fact.
chính.

Star schema chỉ cần một câu lệnh join để trả


Snowflake schema cần nhiều câu lệnh join để xây dựng dữ
về dữ liệu giữa bảng fact và các bảng
liệu trả về.
dimension.

Thiết kế cơ sở dữ liệu đơn giản. Thiết kế cơ sơ dữ liệu tương đối phức tạp.

Các đối tượng dữ liệu được dàn trải hàng Các dữ liệu đối tượng được chuẩn hóa đúng theo đối tượng
ngang nên truy xuất nhanh hơn. đó.

Các dữ liệu bị lặp lại khá nhiều. Dữ liệu lặp lại ít hoặc không có.
Một đối tượng chính sẽ được tổng hợp từ Đối tượng chính được tách ra thêm các đối tượng phụ xung
nhiều đối tượng phụ vào chung một bảng. quanh.

Truy xuất dữ liệu theo nhu cầu (datacube) sẽ Truy xuất dữ liệu theo nhu cầu sẽ chậm hơn do phải join nhiều
nhanh hơn. bảng.

You might also like