tabelele de fapt sunt fundamentul depozitului de date. Acestea conțin măsurătorile fundamentale ale întreprinderii și sunt ținta finală a majorității interogărilor din depozitul de date. Nu are rost să ridicăm tabele de fapt până la catarg, cu excepția cazului în care au fost alese pentru a reflecta prioritățile urgente de afaceri, au fost atent asigurate de calitate și sunt înconjurate de dimensiuni care oferă o multitudine de puncte de intrare pentru constrângere și grupare. Acum, că am deschis calea pentru tabele de fapt, să vedem cum să le construim și să le folosim.
rămâi fidel bobului
primul și cel mai important pas de proiectare este declararea bobului de masă. Cereale este definiția de afaceri a ceea ce reprezintă o singură înregistrare tabel de fapt. Declarația de cereale nu este o listă de chei străine dimensionale care implementează o cheie primară pentru tabelul de fapt. Mai degrabă, bobul este descrierea evenimentului de măsurare din lumea fizică care dă naștere unei măsurători. Când scanerul magazinului alimentar măsoară cantitatea și prețul perceput al unui produs achiziționat, bobul este literalmente semnalul sonor al scanerului. Aceasta este o definiție mare de cereale!
imediat după declararea bobului, este posibilă listarea cheilor străine dimensionale care există la acel Bob. Declarând mai întâi cerealele, discuția despre cheile străine rămâne întemeiată și precisă.
scopul real al tabelului de fapte este de a fi depozitul faptelor numerice care sunt observate în timpul evenimentului de măsurare. Este extrem de important ca aceste fapte să fie adevărate pentru cereale. Magazinul alimentar” beep ” măsoară cantitatea și prețul extins al produsului scanat. Nu includem niciodată alte măsurători numerice care încalcă cerealele, cum ar fi vânzările generale ale categoriei sau vânzările acestui produs luna trecută. Chiar dacă aceste alte măsurători ar putea fi utile pentru calculele selectate, ele nu pot fi combinate între înregistrările de fapt și introduc asimetrii ciudate în proiectarea aplicațiilor. Lăsăm instrumentele noastre de business intelligence (BI) să calculeze aceste valori în afara subiectului la momentul interogării, mai degrabă decât să le codificăm greu în tabelele noastre de fapt.
ne străduim întotdeauna să facem faptele aditive peste dimensiuni și exact în concordanță cu bobul. Observați că nu stocăm prețul produsului scanat, deoarece prețul este neaditiv. Mai degrabă, stocăm prețul extins, care poate fi adăugat liber în produse, magazine, ore și toate celelalte dimensiuni.
construiți din cel mai mic bob posibil
depozitul de date ar trebui să fie întotdeauna construit pe tabele de fapt exprimate la cel mai mic bob posibil. În exemplu, semnalul sonor al Casei de marcat a magazinului alimentar este cel mai mic cereale posibil, deoarece nu poate fi împărțit mai departe. Tabelele de fapt la cele mai mici cereale sunt cele mai expresive, deoarece au cel mai complet set de dimensiuni posibile pentru acel proces de afaceri. Tabelul beep cereale fapt ar putea avea Data, Magazin, produs, casier, Manager, client, promovare, concurență, coș și chiar vreme dacă toate aceste surse de date pot fi marshaled atunci când sunt create înregistrările fapt. Tabelele agregate cu cereale mai mari, cum ar fi vânzările pe categorii pe district, nu pot susține toate aceste dimensiuni și, prin urmare, sunt mult mai puțin expresive. Este o greșeală fundamentală să publicăm numai tabele agregate utilizatorilor finali fără a face accesibile tabelele cu cele mai mici informații despre cereale prin forare. Majoritatea noțiunilor false pe care tabelele dimensionale le presupun întrebarea de afaceri provin din a face această greșeală fundamentală.
trei tipuri de tabele de fapte
Dacă rămâneți fideli cerealelor, atunci toate tabelele dvs. de fapte pot fi grupate în doar trei tipuri: cereale de tranzacție, cereale instantanee periodice și cereale instantanee acumulate (cele trei tipuri sunt prezentate în Figura 1). În Figura 1, dimensiunile sunt desemnate prin FK (cheie străină), iar faptele numerice sunt cursive.
bobul de tranzacție corespunde unei măsurători efectuate într-o singură clipă. Bip magazin alimentar este un cereale tranzacție. Faptele măsurate sunt valabile numai pentru acel moment și pentru acel eveniment. Următorul eveniment de măsurare s-ar putea întâmpla cu o milisecundă mai târziu sau luna viitoare sau niciodată. Astfel, tabelele de fapt de cereale tranzacție sunt imprevizibil rare sau dense. Nu avem nicio garanție că toate cheile străine posibile vor fi reprezentate. Tabelele de tranzacții cu cereale pot fi enorme, cele mai mari conținând multe miliarde de înregistrări.
bobul instantaneu periodic corespunde unui interval de timp predefinit, adesea o perioadă de raportare financiară. Figura 1 ilustrează un instantaneu periodic al contului lunar. Faptele măsurate rezumă activitatea în timpul sau la sfârșitul intervalului de timp. Instantaneul periodic cereale poartă o garanție puternică că toate entitățile raportoare (cum ar fi contul bancar din Figura 1) vor apărea în fiecare instantaneu, chiar dacă nu există activitate. Instantaneul periodic este previzibil dens, iar aplicațiile se pot baza pe combinații de taste care sunt mereu prezente. Tabele periodice instantaneu fapt poate obține, de asemenea, mare. O bancă cu 20 de milioane de conturi și o istorie de 10 ani ar avea 2.4 miliarde de înregistrări în instantaneu periodic cont lunar!
tabelul instantaneu de acumulare corespunde unui proces previzibil care are un început și un sfârșit bine definite. Procesarea comenzilor, procesarea cererilor, rezolvarea apelurilor de servicii și admiterea la facultate sunt candidați tipici. Bobul unui instantaneu acumulat pentru procesarea comenzilor, de exemplu, este de obicei elementul rând din comandă. Observați în Figura 1 că există mai multe date care reprezintă scenariul standard pe care îl suferă o comandă. Acumularea înregistrărilor instantanee este revizuită și suprascrisă pe măsură ce procesul progresează prin pașii săi de la început până la sfârșit. Acumularea tabele instantaneu fapt, în general, sunt mult mai mici decât celelalte două tipuri din cauza acestei strategii de suprascriere.