Lược đồ bông tuyết so với Lược đồ ngôi sao

Khi chọn lược đồ cơ sở dữ liệu cho kho dữ liệu, bông tuyếtlược đồ sao có xu hướng là lựa chọn phổ biến. So sánh này thảo luận về sự phù hợp của các lược đồ sao và bông tuyết trong các kịch bản khác nhau và đặc điểm của chúng.

Biểu đồ so sánh

Biểu đồ so sánh Schema bông tuyết so với Star Schema
Lược đồ bông tuyếtLược đồ sao
Dễ bảo trì / thay đổi Không dư thừa, vì vậy các lược đồ bông tuyết dễ bảo trì và thay đổi hơn. Có dữ liệu dư thừa và do đó ít dễ dàng hơn để duy trì / thay đổi
Dễ sử dụng Các truy vấn phức tạp hơn và do đó ít dễ hiểu hơn Độ phức tạp truy vấn thấp và dễ hiểu
Hiệu suất truy vấn Nhiều khóa ngoại hơn và do đó thời gian thực hiện truy vấn dài hơn (chậm hơn) Số lượng khóa ngoại ít hơn và do đó thời gian thực hiện truy vấn ngắn hơn (nhanh hơn)
Loại dữ liệu Tốt để sử dụng cho lõi trung tâm dữ liệu để đơn giản hóa các mối quan hệ phức tạp (nhiều: nhiều) Tốt cho datamarts với các mối quan hệ đơn giản (1: 1 hoặc 1: nhiều)
Tham gia Số lượng tham gia cao hơn Ít tham gia
Bảng kích thước Một lược đồ bông tuyết có thể có nhiều hơn một bảng thứ nguyên cho mỗi thứ nguyên. Lược đồ sao chỉ chứa bảng thứ nguyên duy nhất cho mỗi thứ nguyên.
Khi nào sử dụng Khi bảng kích thước có kích thước tương đối lớn, việc trượt tuyết sẽ tốt hơn vì nó làm giảm không gian. Khi bảng thứ nguyên chứa số lượng hàng ít hơn, chúng ta có thể chọn lược đồ hình sao.
Bình thường hóa / Không chuẩn hóa Bảng kích thước ở dạng Chuẩn hóa nhưng Bảng thực tế ở dạng Không chuẩn hóa Cả hai chiều và bảng thực tế đều ở dạng không chuẩn hóa
Mô hình dữ liệu Cách tiếp cận từ dưới lên Cách tiếp cận từ trên xuống

Nội dung: Lược đồ bông tuyết vs Lược đồ ngôi sao

  • 1 ví dụ
    • Ví dụ lược đồ 1.1 sao
    • 1.2 Ví dụ về lược đồ bông tuyết
  • 2 Tài liệu tham khảo

Ví dụ

Hãy xem xét một cơ sở dữ liệu cho một nhà bán lẻ có nhiều cửa hàng, với mỗi cửa hàng bán nhiều sản phẩm trong nhiều loại sản phẩm và của các thương hiệu khác nhau. Kho dữ liệu hoặc trung tâm dữ liệu cho một nhà bán lẻ như vậy sẽ cần cung cấp cho các nhà phân tích khả năng chạy các báo cáo bán hàng được nhóm theo cửa hàng, ngày (hoặc tháng, quý hoặc năm), hoặc danh mục sản phẩm hoặc nhãn hiệu.

Ví dụ lược đồ sao

Nếu mart dữ liệu này đang sử dụng lược đồ sao, nó sẽ trông như sau:

Ví dụ về lược đồ sao

Bảng thực tế sẽ là một bản ghi các giao dịch bán hàng, trong khi có các bảng kích thước cho ngày, cửa hàng và sản phẩm. Mỗi bảng kích thước được kết nối với bảng thực tế thông qua khóa chính của chúng, đây là khóa ngoại cho bảng thực tế. Ví dụ: thay vì lưu trữ ngày giao dịch thực tế trong một hàng của bảng thực tế, date_id được lưu trữ. Date_id này tương ứng với một hàng duy nhất trong bảng Dim_Date và hàng đó cũng lưu trữ các thuộc tính khác của ngày được yêu cầu để nhóm trong các báo cáo. ví dụ: ngày trong tuần, tháng, quý trong năm, v.v. Dữ liệu được chuẩn hóa để báo cáo dễ dàng hơn.

Dưới đây là cách người ta có thể nhận được báo cáo về số lượng tivi được bán theo nhãn hiệu và theo quốc gia với sự trợ giúp của các liên kết bên trong.

Ví dụ về bông tuyết

Kịch bản tương tự cũng có thể sử dụng lược đồ bông tuyết, trong trường hợp đó, nó sẽ được cấu trúc như sau:

Ví dụ lược đồ bông tuyết (bấm vào để phóng to)

Sự khác biệt chính, khi so sánh với lược đồ sao, là dữ liệu trong các bảng kích thước được chuẩn hóa hơn. Ví dụ: thay vì lưu trữ tháng, quý và ngày trong tuần trong mỗi hàng của bảng Dim_Date, chúng được chia thành các bảng thứ nguyên của riêng chúng. Tương tự như vậy đối với bảng Dim_Store, trạng thái và quốc gia là các thuộc tính địa lý được xóa một bước - thay vì được lưu trữ trong bảng Dim_Store, giờ đây chúng được lưu trữ trong một bảng Dim_Geography riêng.

Báo cáo tương tự - số lượng tivi được bán theo quốc gia và theo nhãn hiệu - hiện phức tạp hơn một chút so với lược đồ sao:

Truy vấn SQL để lấy số lượng sản phẩm được bán theo quốc gia và thương hiệu, khi cơ sở dữ liệu sử dụng lược đồ bông tuyết.

Người giới thiệu

  • wikipedia: Snowflower_schema
  • wikipedia: Star_schema