2009-06-02 3 views
10

Я смущен, где я должен начать дизайн схемы звезды.Как создать звездную схему

, например У меня есть таблицы в базе данных следующим образом:

Branch(branchNo, bStreetAddress, bCity) 
LoanManager(empNo, empName, phone, branchNo) 
Customer(custNo, custName, profession, streetAddress, city, state) 
Account(accNo, accType, balance, accDate, custNo) 
LoanContract(contractNo, loanType, amount, loanDate, empNo, custNo) 

Я хочу разработать данных-хранилище для анализа нагрузки , такие как:

  1. Общая сумма кредитов 2008.
  2. Для типа кредитов с более чем 10 кредитными договорами тип кредита и количество договоров

при создании звездообразной схемы, с чего начать?

Для того, что я понимаю, все звездообразные схемы должны иметь центр, а таблица фактов центра содержит «Меры» и «Отношения с другими таблицами фактов».

Итак, при проектировании звездной схемы мы всегда начинаем с центра, подтвердите, какова мера в первую очередь? а затем выбрать правильное отношение к другой таблице фактов?

Но у меня все еще есть другой вопрос: что мы должны выбрать для измерения? При выборе мер, какой вопрос я должен задать себе?

ответ

8

Дизайн звездообразной схемы всегда управляется бизнес-потребностями . Какие вопросы задают? Насколько хороши должны быть ответы?

В вашем примере интересными вопросами могут быть «Количество контрактов по филиалу или LoanManager» или «Управляемая сумма займов по филиалам или LoanManager». В этом случае, Branch и LoanManager бы стать вашими размерами в то время как Count(LoanContract) и Sum(LoanContract.amount) бы ваши мер. Общим дополнительным измерением является время, обычно week или quarter.

Схема для ответа на эти вопросы могли бы выглядеть следующим образом:

DimBranch (branchNo) 
DimLoanManager (empNo) 
DimQuarter (year, qNo) -- qNo in (1,2,3,4) 
DimWeek (year, weekNo) -- weekNo in (0..53), depending on business rules 

Measures (branchNo, empNo, year, qNo, weekNo, numContracts, sumLoans) 

Для деловых вопросов вы уже поставленных в вашем вопросе, размеры и меры будут такими:

  1. Размер: year , мера: Sum(LoanContract.amount)
  2. размер: loanType, мерный: Count(LoanContract)

Помещение этих двух в одну и ту же звездную схему не имеет особого смысла, поскольку они не разделяют измерения или меры.

Смежные вопросы