Diễn đàn thiết kế kho dữ liệu

Trợ giúp của Dimensional Modeling

Bảng trợ giúp cho phép bạn thiết kế và quản lý thành công các Dimensional Modeling giá trị.

Mục tiêu của mô hình chiều dữ liệu (dimensional modeling) là đại diện cho một tập hợp các phép đo kinh doanh trong một khuôn khổ tiêu chuẩn. Mô hình chiều dữ liệu không gian rất hấp dẫn vì người dùng cuối thường dễ dàng hiểu được khung này. Các lược đồ là kết quả của mô hình chiều dữ liệu có thể dự đoán được đến mức các nhà cung cấp công cụ truy vấn có thể xây dựng các công cụ của họ xung quanh một tập hợp các cấu trúc nổi tiếng. Lược đồ nối sao cổ điển kết quả từ mô hình chiều dữ liệu thường có từ sáu đến 10 bảng kích thước được kết nối trực tiếp với bảng dữ kiện, như Hình 1 cho thấy. Các bảng kích thước này có mối quan hệ rất cụ thể và chính xác với bảng dữ kiện.

Dimensional Modeling

Hãy coi bảng thực tế như một tập hợp các phép đo được thực hiện trên thị trường. Các phép đo này thường là số và được thực hiện trước khi tạo một bảng dữ kiện nhất định. Bản ghi bảng thông tin có thể đại diện cho một giao dịch riêng lẻ, chẳng hạn như một lần rút tiền của khách hàng được thực hiện tại máy ATM hoặc bảng ghi dữ liệu có thể đại diện cho một số loại tổng tổng hợp, chẳng hạn như doanh số của một sản phẩm nhất định trong một cửa hàng vào một ngày cụ thể. Mặt khác, các bảng thứ nguyên thường đại diện cho các thuộc tính văn bản đã được biết về những thứ như sản phẩm, khách hàng hoặc lịch.

Khi bạn đang xây dựng một bảng dữ kiện, bước quan trọng nhất trong thiết kế logic chi tiết là khai báo hạt của bảng dữ kiện. Hạt tuyên bố ý nghĩa chính xác của một hồ sơ dữ kiện cá nhân. Trong những ví dụ này, hạt đầu tiên là giao dịch của khách hàng cá nhân và hạt thứ hai là tổng sản phẩm hàng ngày trong cửa hàng. Nếu người thiết kế cơ sở dữ liệu rất rõ ràng về hạt của bảng dữ kiện, thì việc chọn kích thước thích hợp cho bảng dữ liệu thường dễ dàng.

Bí quyết chọn thứ nguyên cho một bảng dữ kiện nhất định là xác định bất kỳ mô tả nào có một giá trị duy nhất cho một bản ghi bảng dữ kiện riêng lẻ. Bằng cách này, bạn có thể làm việc từ bên ngoài của bảng thông tin và “trang trí” bảng dữ liệu với nhiều kích thước như bạn có thể tưởng tượng. Đối với ví dụ về giao dịch của khách hàng ATM, hãy tưởng tượng rằng tất cả các thứ nguyên sau đều có một giá trị duy nhất tại thời điểm giao dịch:

  • Lịch ngày
  • Thời gian trong ngày
  • Tài khoản khách hàng
  • Vị trí vật lý
  • Loại giao dịch ( gửi tiền, rút ​​tiền, truy vấn số dư, v.v.)
  • Tóm tắt thời tiết trong ngày.

Đây là tất cả các kích thước tuyệt vời để đính kèm vào bản ghi bảng thông tin chi tiết về giao dịch. Mỗi thứ nguyên này có nhiều thuộc tính mô tả. Các thuộc tính mô tả thường ở dạng văn bản và là cơ sở để ràng buộc và nhóm trong báo cáo của người dùng. Trong trường hợp Thời gian trong ngày, các thuộc tính văn bản có thể đề cập đến các khoảng thời gian cụ thể như Giờ cao điểm buổi sáng, Giữa buổi sáng, Giờ ăn trưa, Giữa buổi chiều, Giờ cao điểm buổi chiều, v.v. Trong trường hợp này, thực tế được đo bằng số duy nhất là số tiền của giao dịch. Đây là cơ sở cho Hình 1 .

Việc tuân thủ nghiêm ngặt định nghĩa hạt cho phép bạn loại bỏ các thứ nguyên không có một giá trị duy nhất cho một bản ghi dữ kiện nhất định. Trong ví dụ về tổng sản phẩm hàng ngày, bạn có thể đề xuất các thứ nguyên bán lẻ cổ điển là:

  • Lịch ngày
  • Sản phẩm
  • Cửa hàng
  • Khuyến mãi ( giả sử chương trình khuyến mãi vẫn có hiệu lực cả ngày).

Nhưng bạn phải bỏ qua các thứ nguyên Khách hàng và Thư ký thanh toán mà bạn có thể cho rằng sẽ được bao gồm vì các thứ nguyên này có nhiều giá trị ở mức hàng ngày mà chúng tôi đã chọn.

Những ví dụ này cung cấp một cái nhìn sâu sắc rất mạnh mẽ. Bạn có nhiều khả năng bị loại thứ nguyên nếu bạn đang xử lý một bảng tổng hợp hoặc tóm tắt. Bảng dữ kiện được tóm tắt càng nhiều thì số thứ nguyên bạn có thể đính kèm vào hồ sơ dữ kiện càng ít. Vấn đề của điều này là mở rộng tầm mắt. Dữ liệu càng chi tiết, thì thứ nguyên càng có ý nghĩa. Dữ liệu cấp thấp nhất trong bất kỳ tổ chức nào là dữ liệu nhiều chiều nhất. Đây là lý do tại sao tôi tranh luận rằng “kho dữ liệu nguyên tử” phải được trình bày dưới dạng dimensional model.

Sau khi đưa ra một lập luận khá gọn gàng cho các thứ nguyên có giá trị đơn, có lẽ tôi nên xem xét liệu có bao giờ có những ngoại lệ hợp pháp hay không. Có những trường hợp mà bạn có thể cần phải đính kèm thứ nguyên nhiều giá trị vào bảng dữ kiện không? Điều này có khả thi không và những vấn đề nào có thể phát sinh?

Hãy xem xét ví dụ sau từ thanh toán chăm sóc sức khỏe. Bạn được giao một nguồn dữ liệu mà ngũ cốc là mục hàng riêng lẻ trên hóa đơn bác sĩ. Nguồn dữ liệu có thể là những lần bệnh nhân đến văn phòng bác sĩ hoặc những khoản phí cá nhân trên hóa đơn bệnh viện. Các mục hàng riêng lẻ này có một tập hợp thứ nguyên phong phú mà chúng tôi có thể liệt kê nhanh chóng:

  • Ngày lịch (tính phí phát sinh)
  • Kiên nhẫn
  • Bác sĩ (thường được gọi là “Nhà cung cấp”)
  • Vị trí
  • Dịch vụ đã thực hiện
  • Chẩn đoán
  • Người trả tiền

Dữ kiện cộng thêm số trong thiết kế này (là cốt lõi của mọi bảng dữ kiện trong thiết kế thứ nguyên) sẽ bao gồm Số tiền đã tính và có lẽ những dữ kiện khác bao gồm Số tiền đã trả, tùy thuộc vào bản chất của nguồn dữ liệu.

Cho đến nay, thiết kế này có vẻ khá đơn giản, với các giá trị đơn lẻ rõ ràng cho tất cả các kích thước. Nhưng có một người ngủ. Trong nhiều tình huống chăm sóc sức khỏe, có thể có nhiều giá trị cho Chẩn đoán. Bạn sẽ làm gì nếu một bệnh nhân nhất định có ba chẩn đoán riêng biệt tại thời điểm dịch vụ được thực hiện? Làm thế nào về những người thực sự bị bệnh trong bệnh viện có thể có tới 10 chẩn đoán? Làm cách nào để bạn mã hóa thứ nguyên Chẩn đoán nếu bạn muốn trình bày thông tin này?

Các nhà thiết kế cơ sở dữ liệu thường thực hiện một trong bốn cách tiếp cận đối với loại tình huống mở, nhiều giá trị này:

  • Loại thứ nguyên Chẩn đoán vì thử nguyên này có nhiều giá trị.
  • Chọn một giá trị ( chẩn đoán “chính”) và bỏ qua các giá trị khác.
  • Mở rộng danh sách thứ nguyên để có một số thứ nguyên Chẩn đoán ổn định.
  • Đặc một bảng trợ giúp ở giữa bảng thông tin này và bảng thứ nguyên Chẩn đoán

Thông thường, các nhà thiết kế chọn một giá trị duy nhất (thay thế thứ hai). Trong lĩnh vực chăm sóc sức khỏe, điều này thường được coi là chẩn đoán chính hoặc thừa nhận. Trong nhiều trường hợp, bạn bị trói tay vì bạn được hệ thống sản xuất cung cấp dữ liệu ở dạng này. Nếu bạn thực hiện phương pháp này, vấn đề mô hình hóa sẽ biến mất, nhưng bạn vẫn nghi ngờ liệu dữ liệu Chẩn đoán có hữu ích hay không.

Cách tiếp cận thứ ba của việc tạo một số lượng cố định các vị trí thứ nguyên Chẩn đoán bổ sung trong danh sách khóa của bảng thông tin là một sự tấn công và bạn nên tránh nó. Không thể tránh khỏi, sẽ có một số ví dụ phức tạp về một bệnh nhân ốm nặng vượt quá số vị trí Chẩn đoán mà bạn đã phân bổ. Ngoài ra, bạn không thể dễ dàng truy vấn nhiều thứ nguyên Chẩn đoán riêng biệt. Nếu “đau đầu” là một chẩn đoán, thì thứ nguyên Chẩn đoán nào nên bị hạn chế? Kết quả hoặc logic trên các kích thước nổi tiếng là chạy chậm trên cơ sở dữ liệu quan hệ. Vì tất cả những lý do này, bạn nên tránh phong cách thiết kế nhiều chiều.

Nếu bạn thực sự nhấn mạnh vào việc mô hình hóa tình huống nhiều giá trị này, thì bảng “trợ giúp” được đặt giữa thứ nguyên Chẩn đoán và bảng dữ kiện là giải pháp tốt nhất. Phím Chẩn đoán trong bảng thông tin được thay đổi thành khóa Nhóm chẩn đoán. Bảng trợ giúp ở giữa là bảng Nhóm chẩn đoán. Nó có một bản ghi cho mỗi chẩn đoán trong một nhóm các chẩn đoán. Nếu tôi bước vào văn phòng bác sĩ với ba chẩn đoán, thì tôi cần một Nhóm chẩn đoán với ba hồ sơ trong đó. Người lập mô hình tùy thuộc vào việc xây dựng các Nhóm chẩn đoán này cho từng cá nhân hoặc một thư viện gồm các Nhóm chẩn đoán “đã biết”. Có lẽ ba chẩn đoán của tôi sẽ được gọi là “Hội chứng Kimball.”

Bảng Nhóm chẩn đoán được kết hợp với thứ nguyên Chẩn đoán ban đầu trên phím Chẩn đoán. Bảng Nhóm chẩn đoán trong Hình 2 chứa một thuộc tính số rất quan trọng: hệ số trọng số. Hệ số trọng số cho phép tạo các báo cáo không tính gấp đôi Số tiền được lập hóa đơn trong bảng dữ kiện. Ví dụ: nếu bạn giới hạn một số thuộc tính trong thứ nguyên Chẩn đoán, chẳng hạn như “Chỉ báo lây nhiễm” với các giá trị Lây nhiễm và Không lây nhiễm, thì bạn có thể nhóm theo Chỉ số lây nhiễm và tạo báo cáo với tổng số chính xác. Để có được tổng số chính xác, chúng ta phải nhân Số tiền được lập hóa đơn với hệ số trọng số liên quan. Đây là một báo cáo có trọng số chính xác.

Bạn có thể chỉ định các yếu tố trọng số như nhau trong Nhóm chẩn đoán. Nếu có ba chẩn đoán, thì mỗi chẩn đoán nhận được hệ số trọng số là 1/3. Nếu bạn có một số cơ sở hợp lý khác để chỉ định các yếu tố trọng số khác nhau, thì bạn có thể thay đổi các yếu tố, miễn là tất cả các yếu tố trong Nhóm chẩn đoán luôn cộng lại thành một.

Thật thú vị, bạn có thể cố tình bỏ qua hệ số trọng số và cố tình đếm hai lần cùng một báo cáo được nhóm theo Chỉ báo lây nhiễm. Trong trường hợp này, bạn đã tạo một “báo cáo tác động” cho biết Tổng số tiền được lập hóa đơn được ngụ ý một phần hoặc toàn bộ bởi cả hai giá trị của Chỉ báo lây nhiễm. Mặc dù báo cáo có trọng số chính xác là phổ biến nhất và có ý nghĩa nhất, nhưng báo cáo tác động vẫn thú vị và được yêu cầu theo thời gian. Một báo cáo tác động như vậy nên được dán nhãn để người đọc không bị đánh lừa bởi bất kỳ tổng số tóm tắt nào.

Mặc dù bảng trợ giúp rõ ràng vi phạm thiết kế nối sao cổ điển trong đó tất cả các bảng kích thước đều có mối quan hệ đơn giản một-nhiều với bảng dữ kiện, nhưng không tránh khỏi vấn đề phải làm gì với các thứ nguyên nhiều giá trị mà các nhà thiết kế khăng khăng gắn vào bảng dữ kiện. May mắn thay, các nhà thiết kế hiếm khi nhấn mạnh vào việc gắn một kích thước đa giá trị vào một tập hợp các phép đo. Trong hầu hết các trường hợp, bạn không có cơ sở hợp lý để chỉ định các hệ số trọng số, hoặc thậm chí tệ hơn, bạn không có một danh sách ngắn hợp lý các ứng viên từ thứ nguyên đa giá trị. Do đó, bạn không lãng phí thời gian khi cố gắng gắn thứ nguyên Khách hàng của nhà bán lẻ vào bảng thông tin doanh số tổng hợp hàng ngày hoặc hàng tháng. Nó chỉ là không thú vị hoặc hữu ích.

Khi bạn đính kèm bảng trợ giúp vào bảng dữ kiện, bạn có thể duy trì ảo ảnh kết hợp dấu sao trong giao diện người dùng cuối của mình bằng cách tạo một dạng xem gắn trước bảng dữ kiện với bảng trợ giúp. Sau đó, chế độ xem kết quả dường như có một khóa Chẩn đoán đơn giản tham gia vào bảng Chẩn đoán của chúng tôi trong ví dụ chăm sóc sức khỏe. Chế độ xem cũng có thể xác định trước phép nhân của hệ số trọng số với bất kỳ dữ kiện cộng nào trong bảng dữ kiện.

Tôi đã thấy hai tình huống khác bên cạnh việc chăm sóc sức khỏe, nơi mà chiều hướng đa giá trị có ý nghĩa. Ngoài ví dụ Chẩn đoán được thảo luận trong cột này, tôi đã xây dựng các thứ nguyên đa giá trị cho các ngân hàng bán lẻ và phân loại ngành tiêu chuẩn.

Ngân hàng Bán lẻ

Thường có những trường hợp Thứ nguyên tài khoản là “nơi sinh sống” của một hoặc nhiều khách hàng là con người. Nếu ngân hàng muốn kết hợp khách hàng cá nhân với số dư tài khoản, thì thứ nguyên Tài khoản phải đóng vai trò giống như thứ nguyên Nhóm chẩn đoán trong ví dụ về chăm sóc sức khỏe. Các ngân hàng khá quan tâm đến cả báo cáo có tỷ trọng chính xác và báo cáo tác động.

Phân loại ngành tiêu chuẩn

Thuật ngữ này xác định cái gọi là mã SIC được gán cho một doanh nghiệp thương mại để mô tả phân khúc ngành của họ. Vấn đề với mã SIC là tất cả các doanh nghiệp lớn đều được đại diện bởi nhiều mã SIC. Nếu bạn mã hóa một bảng dữ kiện bằng thứ nguyên SIC, bạn sẽ gặp vấn đề tương tự như với nhiều chẩn đoán. Tuy nhiên, mã SIC thực sự khá hữu ích. Nếu bạn muốn tóm tắt tất cả hoạt động kinh doanh mà bạn bán cho “Nhà sản xuất” và “Nhà bán lẻ” bằng cách sử dụng mã SIC của họ, bạn sẽ cần một bảng trợ giúp của SIC Group. Đây là một trường hợp mà với một số suy nghĩ cẩn thận, bạn có thể chỉ định các hệ số trọng số không bằng nhau nếu bạn tin rằng doanh nghiệp chủ yếu là nhà sản xuất và chỉ là một nhà bán lẻ.

Tháng tới, tôi sẽ mô tả một loại bảng trợ giúp khác cho các thứ nguyên. Trong trường hợp này, bảng trợ giúp không mô tả mối quan hệ nhiều-nhiều mà mô tả mối quan hệ phân cấp. Chúng ta có thể sử dụng loại bảng trợ giúp thứ hai này để điều hướng phân cấp tổ chức và các bộ phận sản xuất bùng nổ.

Hình 1. Mô hình chiều tham gia sao điển hình cho các giao dịch ATM.

Hình 2. Bảng trợ giúp cho một số chẩn đoán mở.

Ralph Kimball, Ph.d., là người phát minh ra máy trạm Xerox Star. Ông từng là phó chủ tịch phụ trách ứng dụng của Metaphor Computer Systems, đồng thời là người sáng lập và cựu giám đốc điều hành của Red Brick Systems. Giờ đây, anh ấy làm tư vấn độc lập thiết kế kho dữ liệu lớn. Ông là tác giả của Bộ công cụ kho dữ liệu: Cách thiết kế kho dữ liệu thứ nguyên (Wiley, 1996)

>>Xem thêm: Sử dụng nguồn nhân lực kho dữ liệu, Sự khác biệt giữa lý thuyết và thực tế của Dimensional Modeling