În informatică, schema stea este cel mai simplu stil de schemă de magazin de date și este abordarea cea mai utilizată pentru a dezvolta depozite de date și magazine de date dimensionale. Schema stea constă dintr-unul sau mai multe tabele de fapte care fac referire la orice număr de tabele de dimensiuni. Schema stea este un caz special important al schemei fulgi de zăpadă și este mai eficientă pentru gestionarea interogărilor mai simple.
Schema stea își primește numele de la asemănarea modelului fizic cu o formă de stea cu un tabel de fapte în centru și tabelele de dimensiuni din jurul acesteia reprezentând punctele stelei.
Model
Schema stea separă datele procesului de afaceri în fapte, care dețin date măsurabile, cantitative despre o afacere, și dimensiuni care sunt atribute descriptive legate de datele de fapt. Exemple de date concrete includ prețul de vânzare, cantitatea de vânzare și măsurarea timpului, distanței, vitezei și greutății. Exemplele de atribute de dimensiuni asociate includ modele de produse, culori ale produselor, dimensiuni ale produselor, locații geografice și numele vânzătorilor.
O schemă stea care are multe dimensiuni este uneori numită schemă centiped. Având dimensiuni de doar câteva atribute, deși mai simplu de întreținut, are ca rezultat interogări cu multe îmbinări de tabel și face schema stea mai greu de utilizat.
Tabele de fapte
Tabelele de fapte înregistrează măsurători sau valori pentru un anumit eveniment. Tabelele de fapte constau în general din valori numerice și chei străine pentru datele dimensionale în care sunt păstrate informații descriptive. Tabelele de fapte sunt concepute la un nivel scăzut de detalii uniforme (numite „granularitate” sau „granulare”), ceea ce înseamnă că faptele pot înregistra evenimente la un nivel foarte atomic. Acest lucru poate duce la acumularea unui număr mare de înregistrări într-un tabel de fapte în timp. Tabelele cu fapte sunt definite ca unul dintre cele trei tipuri:
- Tabelele cu fapte despre tranzacții înregistrează fapte despre un anumit eveniment (de exemplu, evenimente de vânzări)
- Tabelele de fapte instantanee înregistrează fapte la un moment dat (de exemplu, detaliile contului la sfârșitul lunii)
- Tabelele instantanee de acumulare înregistrează fapte agregate la un anumit moment în timp (de exemplu, vânzări totale până la zi pentru un produs)
Tabelelor de fapte li se atribuie în general o cheie surogat pentru a se asigura că fiecare rând poate fi identificat în mod unic. Această cheie este o cheie primară simplă.
Tabele de dimensiuni
Tabelele de dimensiuni au de obicei un număr relativ mic de înregistrări în comparație cu tabelele de fapte, dar fiecare înregistrare poate avea un număr foarte mare de atribute pentru a descrie datele de fapte. Parametrii pot defini o mare varietate de caracteristici, dar unele dintre cele mai comune atribute definite de tabelele de dimensiuni includ:
- Tabelele cu dimensiunea timpului descriu timpul la cel mai scăzut nivel de granularitate temporală pentru care evenimentele sunt înregistrate în schema stea
- Tabelele cu dimensiunile geografice descriu datele despre locație, cum ar fi țara, statul sau orașul
- Tabelele cu dimensiunile produselor descriu produsele
- Tabelele cu dimensiunile angajaților descriu angajații, cum ar fi oamenii de vânzări
- Tabelele cu dimensiunile intervalului descriu intervale de timp, valori în dolari sau alte cantități măsurabile pentru a simplifica raportarea
Tabelelor de dimensiuni li se atribuie, în general, o cheie primară surogat, de obicei un tip de date întreg cu o singură coloană, mapat la combinația de atribute de dimensiune care formează cheia naturală.
Beneficii
Schemele stea sunt denormalizate, ceea ce înseamnă că regulile obișnuite de normalizare aplicate bazelor de date relaționale tranzacționale sunt relaxate în timpul proiectării și implementării schemei în stea. Beneficiile denormalizării schemei stelare sunt:
- Interogări mai simple – logica de îmbinare a schemei în stea este în general mai simplă decât logica de îmbinare necesară pentru a prelua date dintr-o schemă tranzacțională foarte normalizată.
- Logica simplificată de raportare a afacerilor – în comparație cu schemele extrem de normalizate, schema stea simplifică logica obișnuită de raportare a afacerii, cum ar fi raportarea perioadă peste perioadă și raportarea la început.
- Creșterea performanței interogărilor – schemele stea pot oferi îmbunătățiri de performanță pentru aplicațiile de raportare numai în citire în comparație cu schemele extrem de normalizate.
- Agregări rapide – interogările mai simple pe o schemă stea pot duce la performanțe îmbunătățite pentru operațiunile de agregare.
- Cuburi de alimentare – schemele stea sunt folosite de toate sistemele OLAP pentru a construi eficient cuburi OLAP proprietare; de fapt, majoritatea sistemelor OLAP majore oferă un mod de operare ROLAP care poate folosi o schemă stea direct ca sursă fără a construi o structură de cub proprietar.
Dezavantaje
Principalul dezavantaj al schemei stea este că integritatea datelor nu este impusă la fel de bine ca într-o bază de date foarte normalizată. Inserările și actualizările unice pot duce la anomalii ale datelor pe care schemele normalizate sunt concepute pentru a le evita. În general, schemele stea sunt încărcate într-un mod foarte controlat prin procesare în loturi sau „fluxuri de curgere” în timp aproape real, pentru a compensa lipsa de protecție oferită de normalizare.
Schema stea nu este, de asemenea, la fel de flexibilă în ceea ce privește nevoile analitice ca un model de date normalizat. Modelele normalizate permit executarea oricărui fel de interogări analitice atâta timp cât urmează logica de business definită în model. Schemele stea tind să fie create special pentru o anumită vizualizare a datelor, astfel încât să nu permită cu adevărat analize mai complexe. Schemele stea nu acceptă relații de la mai multe la multe dintre entitățile comerciale – cel puțin nu foarte natural. De obicei, aceste relații sunt simplificate în schema stea pentru a se conforma modelului dimensional simplu.
Exemplu
(Schema stea folosită ca exemplu de interogare.)
Luați în considerare o bază de date de vânzări, poate dintr-un lanț de magazine, clasificate după dată, magazin și produs.
Fact_Sales este tabelul de fapte și există trei tabele de dimensiuni Dim_Date, Dim_Store și Dim. Product.
Fiecare tabel de dimensiuni are o cheie primară pe coloana sa Id, referitoare la una dintre coloanele (văzute ca rânduri în schema exemplu) ale cheii primare pe trei coloane (compusă) a tabelului Fact_Sales (Date_Id, Store_Id, Product_Id). Coloana Unit_Sold cu cheie non-primară a tabelului de fapte din acest exemplu reprezintă o măsură sau o valoare care poate fi utilizată în calcule și analize. Coloanele non-cheie principale ale tabelelor cu dimensiuni reprezintă atribute suplimentare ale parametrilor (cum ar fi parametrul an al Dim_Date).
De exemplu, următoarea interogare răspunde câte televizoare au fost vândute, pentru fiecare marcă și țară, în 1997:
SELECT
P.Brand,
172 Business Intelligence and Analytics
S.Country AS Countries,
SUM(F.Units_Sold)
FROM Fact_Sales F
INNER JOIN Dim_Date D ON (F.Date_Id = D.Id)
INNER JOIN Dim_Store S ON (F.Store_Id = S.Id)
INNER JOIN Dim_Product P ON (F.Product_Id = P.Id)
WHERE D.Year = 1997 AND P.Product_Category = ‘tv’
GROUP BY
P.Brand,
S.Country
Sursa: Drew Bentley, Business Intelligence and Analytics. © 2017 Library Press, Licență CC BY-SA 4.0. Traducere și adaptare: Nicolae Sfetcu
Lasă un răspuns