2012-04-30 35 views
5

Câu hỏi trong SSAS cho y'all. Tôi đang cố gắng xác định mối quan hệ Một đến Nhiều trong môi trường khối OLAS SSAS. Tuy nhiên, tôi đang gặp sự cố khi xác định khóa chính. Bảng ví dụ bên dưới. Các mối quan hệ giữa 3 bảng đầu tiên có thể dễ dàng được xác định (TradeDate, NYMEX Trades & Hợp đồng NYMEX). Tuy nhiên, mục tiêu của tôi là tạo mối quan hệ một đến nhiều giữa Hợp đồng và Hợp đồng mẫu NYMEX. Nói cách khác, dữ liệu từ 1 hợp đồng NYMEX sẽ được sử dụng nhiều lần trong bộ dữ liệu Hợp đồng mẫu.SSAS Một đến nhiều mối quan hệ chiều

Bảng: TradeDate

  • TradeDate (PK)
  • Năm
  • Tháng vv ...

Bảng: NYMEX giao dịch (NO PK)

  • ContractName
  • TradeDate
  • Giá

Bảng: Hợp đồng NYMEX

  • ContractName (PK)

Bảng: Mô hình Hợp đồng

  • ModelContractName (PK)
  • ContractName

tôi cần phải tạo ra một một đến nhiều mối quan hệ giữa NYMEX hợp đồng và mẫu hợp đồng ... Tuy nhiên PK của tôi là trên cột sai trong hợp đồng mẫu. Bất kỳ ý tưởng?

Để giúp làm rõ - tôi đang cố xác định thứ nguyên -> mối quan hệ thứ nguyên. Bảng "Hợp đồng mẫu" là một bảng tra cứu.

+1

Bạn nên cân nhắc chuyển câu hỏi này đến trang web chị em: [dba.stackexchange.com] (http: // dba.stackexchange.com/) Các câu hỏi được gắn thẻ với [tag: ssas] và/hoặc [tag: mdx] có thể có cơ hội tốt hơn để được trả lời ở đó. –

+0

Bạn có thể gắn cờ cho nó (để người điều tiết chuyển nó) hoặc bạn đăng lên đó và tự mình xóa câu hỏi này. –

+0

Tại sao bạn lại cố gắng tạo mối quan hệ 1-M thay vì phân cấp? Nếu ContractName trong Hợp đồng mẫu là giống như trong Hợp đồng NYMEX, thì đó có phải là khóa ngoại không? ModelContractName dường như là phần tử hạt tốt nhất trong Hợp đồng mẫu, do đó, danh sách riêng biệt của tên phải là một khóa ứng viên phù hợp (mặc dù một khóa thay thế số nguyên có thể sẽ tốt hơn.) – JAQFrost

Trả lời

6

Những gì bạn có là ví dụ về nhiều người mối quan hệ giữa dữ liệu thực tế của bạn (Giao dịch) và dữ liệu thứ nguyên của bạn (Hợp đồng mẫu). hãy xem điều này: dimension relationship.Trường hợp của bạn là trường hợp hiếm hoi vì hợp đồng mẫu chỉ có thể được gán cho một Tên hợp đồng nhưng nó vẫn nằm trong trường hợp nhiều đến nhiều. Điều này được xử lý bằng cách sử dụng một bảng bridge trong mô hình hóa chiều và trong SSAS chúng gọi nó là một bảng thực tế xen kẽ. Khi bạn đã thiết lập DSV như sau: enter image description here

Sau đó bạn sẽ tạo thứ nguyên trong dự án của mình và sau đó tạo nhóm đo cho ModelContract để có thể sử dụng nó làm bảng thực tế trung gian. Sau đó bạn sẽ thiết lập việc sử dụng không gian cho các khối lựa chọn một mối quan hệ nhiều-nhiều:

enter image description here enter image description here

Là một mặt lưu ý, bạn nên luôn luôn sử dụng các phím thay thế cho kích thước của bạn. Chúng có một số ưu điểm như dung lượng lưu trữ trong bảng thực tế của bạn, từ từ thay đổi kích thước, tách hệ thống nguồn, ...

+0

Chắc chắn xem xét tu sửa nếu có thể bao gồm các khóa thay thế! – elgabito

0

bạn cần phải làm 2 thứ nguyên tại đây.

trước tiên, bạn không nên thêm ngày của mình làm một phần của toàn bộ thứ nguyên. Bản thân ngày phải tồn tại dưới dạng thứ nguyên.

giây, như tôi thấy, bạn nên tham gia Hợp đồng và Hợp đồng mẫu NYMEX và tạo thứ nguyên. Bạn có thể tham gia chúng trên DSV với một truy vấn được đặt tên hoặc tạo một khung nhìn SQL hoặc bạn có thể có cả hai bảng được phân tách trên DSV và nối chúng vào thứ nguyên.

Thứ ba, Giao dịch NYMEX là bảng thực tế của bạn. Khi bạn đã tạo cả hai tham số trước đó, bạn nên thêm chúng vào khối lập phương và kết hợp chúng với bảng thực tế trên tab mối quan hệ thứ nguyên sử dụng các trường ContractName và TradeDate