2013-08-25 24 views
7

Un database OLAP è costituito da dati in formato denormalizzato. Ciò significa ridondanza dei dati e questa ridondanza dei dati consente di recuperare i dati attraverso un minor numero di join, facilitando quindi il recupero più rapido.Uno schema a stella è uno schema denormalizzato?

Ma un design popolare per il database OLAP è un modello di dimensioni reali. La tabella dei fatti memorizzerà le voci numeriche basate sui fatti (numero di vendite, ecc.) Mentre le tabelle delle dimensioni memorizzeranno "attributi descrittivi" relativi al fatto, cioè i dettagli del cliente a cui è stata effettuata la vendita.

La mia domanda è, in questo modello, non sembra affatto denormalizzata, poiché tutte le tabelle di dimensioni avranno riferimenti di chiavi esterne alla tabella dei fatti. In che modo è diverso da un design OLTP?

risposta

7

La denormalizzazione è nelle tabelle delle dimensioni in uno schema a stella: E. g. in una tabella di prodotti, in questa tabella sono presenti molte colonne come diversi livelli di categoria di prodotto, anziché avere una tabella per ogni livello e l'utilizzo di chiavi esterne che fanno riferimento a tali valori.

Ciò significa che si ha la normalizzazione in relazione ai fatti, ma interrompere la normalizzazione nelle tabelle delle dimensioni.

Inoltre, spesso non denormalizzi completamente i fatti. Un tipico esempio potrebbe essere questo: in una tabella completamente normalizzata, si userebbero solo due colonne 'numero di unità vendute' e 'prezzo per unità', ma in un database OLAP, potrebbe avere senso avere un'altra colonna per il ridondante ' valore di vendita "che potrebbe facilmente essere calcolato moltiplicando le unità vendute e il prezzo unitario.

+0

@FrankPI se ho una gerarchia normalizzata come Survey, Question, SubQuestion, AnswerChoices - diresti 1 tabella delle dimensioni con colonne: SurveyID, QuestionID, SubQuestionID, AnswerChoiceID, ... [attributi di sondaggi, domande, sottoquestions e AnswerChoices? Questo sarebbe in contrasto con le tabelle DimSurvey, DimQuestion, DimSubQuestion, ecc ...? – condiosluzverde

+0

@jmsmcfrlnd Dipende da come vorreste interrogarlo, i. e. quali sarebbero le query eseguite? Probabilmente ciò dipende anche dallo strumento che si desidera utilizzare e dalle sue funzionalità di query. – FrankPl

+0

@FrankPI Lo strumento per utilizzare questi dati è Cognos, che utilizza Framework per creare modelli di dati logici per l'interrogazione. interrogeremo/analizzeremo le risposte alle domande del sondaggio (nella tabella dei fatti) - ma analizzeremo le indagini stesse (ad esempio quali domande si comportano "meglio" su un'altra, ecc. – condiosluzverde