Bản thân tôi và một DBA khác tại công ty chúng tôi có nhiệm vụ xem xét một thiết kế cơ sở dữ liệu mà một nhà cung cấp đã phát triển cho chúng tôi. Nhà cung cấp đã nói rằng họ sử dụng Kimball làm cơ sở cho thiết kế của họ. (LƯU Ý: Tôi không tìm kiếm đối số của Kimball vs Inmon, v.v.) Họ đã thiết kế một siêu thị với nhiều sự kiện và kích thước.
Bây giờ trong tất cả các công bằng, công ty chúng tôi chưa bao giờ thiết kế một mart duy nhất. Chúng tôi đã luôn luôn có các chuyên gia tư vấn làm điều đó. Và chúng tôi chưa bao giờ được gửi đến các lớp học hoặc bất cứ điều gì. Vì vậy, kiến thức của chúng tôi về kho / mô hình / mô hình thứ nguyên, v.v ... dựa trên những kinh nghiệm nhỏ chúng tôi có, những gì chúng tôi có thể tìm thấy trên Internet và tự đọc (chúng tôi có sách của Inmon và Kimball và đang cố gắng tìm ra chúng) .
Bây giờ giai đoạn được đặt cho trình độ kiến thức của tôi, chúng tôi đến với thử thách thiết kế.
Có một bảng Fact gọi là "Yêu cầu thống kê tổn thất" (đây là bảo hiểm). Và họ đang cố gắng nắm bắt cả các khoản thanh toán cho các yêu cầu bồi thường (tăng lên đến mức hàng tháng), và sau đó là tiền trong dự trữ (giống như một tài khoản ngân hàng cho các yêu cầu bồi thường). Họ muốn thấy số tiền hàng tháng để thanh toán (không có vấn đề lớn). Nhưng họ muốn thấy số dư hiện tại của tài khoản dự trữ.
Tôi sẽ đưa ra một ví dụ bằng hình ảnh.
Giả sử chúng tôi thiết lập $ 1000 USD dự trữ cho một yêu cầu bồi thường. Điều này được đặt sang một bên (vì vậy trong một số khía cạnh, nó hoạt động giống như một tài khoản ngân hàng).
Vào tháng 10 năm 2014, chúng tôi chưa thanh toán bất cứ điều gì. Vì vậy, doanh nghiệp muốn xem các khoản thanh toán và số dư dự trữ vào cuối tháng Mười.
-----------------------------------------------
- MONTH_YEAR - PAYMENTS - RESERVE_BALANCE -
-----------------------------------------------
- 102014 - 0.00 - 1000.00 -
-----------------------------------------------
Rồi tháng 11 cũng đến. Chúng tôi thực hiện thanh toán 100 đô la, 150 đô la và 75 đô la. Họ muốn thấy những khoản tiền đó được tổng hợp và dự trữ ở số dư như sau:
-----------------------------------------------
- MONTH_YEAR - PAYMENTS - RESERVE_BALANCE -
-----------------------------------------------
- 102014 - 0.00 - 1000.00 -
-----------------------------------------------
- 112014 - 325.00 - 675.00 -
-----------------------------------------------
Và sau đó nói rằng chúng tôi có khoản thanh toán bằng 0 vào tháng 12 và sau đó thêm 200 đô la vào tháng 1 năm sau.
-----------------------------------------------
- MONTH_YEAR - PAYMENTS - RESERVE_BALANCE -
-----------------------------------------------
- 102014 - 0.00 - 1000.00 -
-----------------------------------------------
- 112014 - 325.00 - 675.00 -
-----------------------------------------------
- 122014 - 0.00 - 675.00 -
-----------------------------------------------
- 12015 - 200.00 - 475.00 -
-----------------------------------------------
Đây là nơi tôi đấu tranh. Hiểu biết của tôi là phần thanh toán là chính xác. Tất cả đều được cuộn lên ở mức hàng tháng trong mỗi hồ sơ. Vì vậy, bạn có thể triển khai thêm nếu bạn muốn cho năm, quý, v.v.
Nhưng số lượng dự trữ là khác nhau. Đó là một sự cân bằng. Và doanh nghiệp muốn xem số dư trong mỗi tháng là bao nhiêu. Nhưng bạn không thể tổng hợp trên lĩnh vực này. Nếu bạn đã làm, bạn sẽ nhận được một số kết quả thắng.
Bằng cách nào đó, điều này đánh tôi là sai. Nhưng tôi không thể nói một cách trung thực rằng tôi đã làm mẫu đủ hoặc biết đủ. Tất cả những gì tôi có thể nói là những gì tôi biết. Và từ những gì tôi biết, tất cả các giá trị trong một Sự thật phải ở cùng mức độ chi tiết.
Cả hai con số đều có cùng mức độ chi tiết của một "tháng", nhưng chúng không nằm trong quan điểm của những gì chúng đại diện. Một là tổng hợp đô la trong vòng một tháng. Cái khác chỉ là sự cân bằng.
Điều này có đúng không? Tôi đã đẩy lùi thiết kế này. Tôi có sai khi làm như vậy không? Có thể làm điều này trong một thực tế? Hay ý thức của tôi về "mùi mã" của một thiết kế xấu là chính xác?
Bất kỳ trợ giúp sẽ được đánh giá cao. LƯU Ý: vui lòng không chỉ nói "Nó phải là cách X", vui lòng giải thích lý do tại sao nó phải như vậy để tôi có thể học hỏi từ điều này.
EDIT : Vâng, tôi đã học được rằng sự hiểu biết ban đầu của tôi về Sự thật là sai. Độ chi tiết KHÔNG hàng tháng. Độ chi tiết là mức độ giao dịch. Vì vậy, điều đó có nghĩa là trong MONTH_YEAR (tức là thực sự là kỳ báo cáo tài chính) sẽ có nhiều giao dịch thanh toán và thu hồi. Những người sẽ được đăng theo ngày hoặc ngày giao dịch. Nhưng vì một báo cáo trước mà doanh nghiệp nhìn thấy và cũng vì cách dữ liệu được lưu trữ trong hệ thống cũ mà họ muốn đặt cả dữ liệu giao dịch (một hàng mỗi) và số dư dự trữ hàng tháng (một hàng mỗi tháng ).
Khi tôi biết điều đó, tôi nhận ra rằng vấn đề không phải là quá nhiều phụ gia so với không phụ gia, hoặc thậm chí là bán phụ gia vì nó là hạt, đó là điều tôi đã nghi ngờ từ đầu. Nhóm DBA của chúng tôi đã thảo luận điều này với nhóm dự án và báo cáo rằng họ đang cố gắng đưa hai loại ngũ cốc khác nhau vào cùng một thực tế, và điều này là không chính xác. Rằng họ nên đóng vai trò giao dịch lên mức hàng tháng, cho phép họ sau đó có các khoản thanh toán, thu hồi và số dư dự trữ hàng tháng (tức là một thực tế bán phụ gia) bởi vì mọi thứ sẽ ở mức hạt hàng tháng. Hoặc họ cần tìm cách chia nhỏ số dư dự trữ thành các giao dịch để duy trì mức hạt giao dịch. Hoặc họ cần chia sự thật thành hai sự thật. Một có thể là mức hàng tháng cho số dư dự trữ. Cái khác có thể ở cấp độ giao dịch cho các khoản thanh toán và thu hồi. (Không có lý do tại sao họ cũng không thể đặt các khoản thanh toán và thu hồi ở mức hàng tháng trong thực tế cấp hàng tháng. Chỉ phụ thuộc vào nhu cầu kinh doanh.)
Cho những gì tôi đã học được, tôi sẽ đánh dấu câu trả lời của Thomas là câu trả lời đúng. Tuy nhiên, tôi cảm thấy cuộc thảo luận mà tôi đã bắt đầu với câu hỏi ban đầu vẫn là một câu hỏi hay để người khác học hỏi, vì vậy tôi sẽ giữ nguyên phần ban đầu của câu hỏi của mình. Tôi cũng có ý định trao tiền thưởng cho câu trả lời của nikadam vì điều đó đã dạy tôi rất nhiều về các sự kiện phụ gia, không phụ gia và bán phụ gia, và sửa chữa rất nhiều hiểu lầm mà tôi có về mô hình hóa chiều.