Lär dig om större schema: Star vs. Snowflake

By rik

Ett flerdimensionellt schema är en konstruktion som används för att skapa en modell för ett datalagringssystem.

Dessa scheman är huvudsakligen till för att möta behoven hos stora databaser som byggts för analysändamål, så kallad OLAP (Online Analytical Processing).

Denna metod används för att organisera data i en databas på ett sätt som gör innehållet i databasen lättillgängligt och välstrukturerat. Schemat gör det möjligt för användare att ställa frågor relaterade till affärstrender och marknadsutveckling.

Dessutom representerar ett flerdimensionellt schema data i form av datakuber, vilket gör det möjligt att visualisera och modellera data från olika synvinklar och dimensioner.

Det finns huvudsakligen tre typer, men det är vanligt att man blandar ihop stjärn- och snöflingescheman, vilket försvårar valet av den bästa modellen.

Om du är en av dem, låt oss utforska skillnaderna mellan stjärn- och snöflingescheman, med start i definitionerna, och undersöka deras fördelar, utmaningar, strukturer och egenskaper.

Vad är ett flerdimensionellt schema?

Ett schema avser den logiska beskrivningen av en hel databas och datamarts. Detta inkluderar namnen på poster och deras beskrivningar, inklusive aggregeringar och relaterade dataobjekt.

En databas använder vanligen en relationsmodell för att beskriva data, medan ett datalagringssystem använder en schemamodell.

Flerdimensionella scheman kan definieras med hjälp av Data Mining Query Language (DMQL).

För att definiera datamarts och datalager används två grundläggande element: dimensionsdefinition och kubdefinition.

Det flerdimensionella schemat använder olika typer av schemamodeller, bland annat:

  • Stjärnschema
  • Snöflingeschema
  • Galaxschema

Låt oss nu gå in på vad stjärn- och snöflingescheman är.

Stjärnschema kontra snöflingeschema: Vad är det?

Vad är ett stjärnschema?

Ett stjärnschema är en datalagrings- och affärsintelligensmodell. Modellen utgår från en central faktatabell som lagrar mätdata och transaktionsinformation. Modellen använder även flera mindre dimensionstabeller som innehåller information om affärsdata.

Modellen har fått sitt namn från sin struktur. Faktatabellen ligger i mitten av diagrammet, och de mindre dimensionstabellerna är placerade som grenar runt den, vilket bildar en stjärnliknande struktur.

Varje stjärnschema består av en central faktatabell och flera mindre dimensionstabeller. Faktatabellerna innehåller specifik, mätbar data som behöver analyseras, exempelvis loggade prestationer, ekonomisk data eller försäljningsposter. Det kan vara ett ögonblick av historisk data eller enskilda transaktioner.

Stjärnschemat är det enklaste och mest grundläggande av datalager- och datamarts scheman. Det är effektivt för hantering av grundläggande frågeställningar. Stjärnscheman stöder affärsintelligens, ad hoc-frågor, analytiska applikationer och analytiska bearbetningskuber online.

Stjärnscheman stöder också beräkning av antal, medelvärde, summa och andra aggregeringar av stora datamängder. Användare kan enkelt filtrera och gruppera aggregeringarna efter dimensioner. Till exempel kan man ställa frågor som ”hitta alla försäljningsposter i juni” eller ”analysera totala intäkter från XYZ-kontoret under 2022”.

Vad är ett snöflingeschema?

Ett snöflingeschema är en flerdimensionell datamodell som kan beskrivas som en utvidgning av stjärnschemat. Detta beror på att dimensionstabellerna i ett snöflingeschema delas upp i underdimensioner.

Ett schema klassificeras som ett snöflingeschema om en eller flera dimensionstabeller inte länkar direkt till faktatabellen, utan istället ansluter via andra dimensionstabeller.

Snöflingning är en normalisering av dimensionstabellerna i ett stjärnschema. När alla dimensionstabeller normaliseras liknar den resulterande strukturen en snöflinga, med en faktatabell i mitten.

Ett snöflingeschema består alltså av en faktatabell i mitten, som är kopplad till dimensionstabeller, vilka i sin tur är kopplade till andra dimensionstabeller. Detta schema används för att förbättra prestanda vid frågor.

Modellen är skapad för snabba och flexibla frågor över komplexa relationer och dimensioner. Det är användbart vid en-till-många- och många-till-många-relationer mellan olika dimensionsnivåer.

Tack vare en striktare efterlevnad av normaliseringsstandarder, uppnås högre lagringseffektivitet. Dock är dataredundansen låg och prestandan lägre än för de normaliserade datamodellerna såsom stjärnschemat.

Stjärnschema kontra snöflingeschema: Hur fungerar de?

Hur fungerar ett stjärnschema?

Faktatabellen i mitten av stjärnschemat lagrar två typer av information: numeriska värden och dimensionsattributvärden. Låt oss använda ett exempel med en försäljningsdatabas för att förtydliga detta.

  • Numeriska värden är unika för varje rad och datapunk. De korrelerar inte med andra data i andra rader. Detta är fakta om en transaktion, som totalt belopp, orderkvantitet, tidpunkt, nettovinst, order-ID etc.
  • Dimensionsattributvärden lagrar inte data direkt, men lagrar istället främmande nyckelvärden för raden i en dimensionstabell. Flera rader i den centrala tabellen kan referera till denna information, exempelvis datumvärde, säljarens ID, filialkontorets ID, produkt-ID etc.

Dimensionstabeller lagrar alltid stödinformation till faktatabellen. Varje dimensionstabell relaterar till en kolumn i en faktatabell, tillsammans med ett dimensionsvärde och ytterligare information om det värdet.

Exempel: En tabell för anställda använder anställd-ID som nyckelvärde och innehåller även information som namn, kön, adress och telefonnummer. På samma sätt lagrar en produktdimensionstabell information som produktnamn, färg, första marknadsdatum, tillverkningskostnad etc.

Hur fungerar ett snöflingeschema?

Föreställ dig ett snöflingeschema som en central låda, med olika anslutningar genom den lådan till olika punkter. Snöflingeschemat kommer in i bilden för att underhålla datamarts och datalager.

Det liknar ett stjärnschema, men med små justeringar. Till skillnad från stjärnschemat, utökar snöflingeschemat sina underdimensionstabeller, som i sin tur är länkade till dimensionstabellerna.

Det primära syftet med denna modell är att normalisera den denormaliserade informationen i stjärnschemat. På så sätt kan man lösa problem som är vanliga i stjärnscheman.

I hjärtat av schemat finns en faktatabell som länkar till informationen i dimensionstabeller. Dessa tabeller strålar sedan utåt mot underdimensionstabeller, som innehåller detaljerad information som beskriver informationen i dimensionstabellerna.

Exempel: Snöflingeschemat kan innehålla en försäljningsfaktatabell och tabeller för butiksplats, linje, familj, produkt och tidsdimensioner. Marknadsdimensionerna består av två dimensionstabeller, där butiken är den primära dimensionstabellen och butikens plats är underdimensionstabellen. Produktdimensionen kan ha tre underdimensionstabeller som beskriver produkt-, linje- och familjunderdimensioner.

Stjärnschema kontra snöflingeschema: Egenskaper

Egenskaper hos ett stjärnschema

  • Stjärnscheman kan filtrera data från normaliserade data för att möta datalagringsbehoven. En unik nyckel genereras från den associerade informationen för varje faktatabell för att identifiera varje rad.
  • Det möjliggör snabba beräkningar och sammanställningar, såsom månadsvisa intäkter och totalt antal sålda varor. Dessa detaljer kan filtreras efter behov genom att ställa lämpliga frågor.
  • Det mäter händelser som inkluderar ändliga numeriska värden som består av främmande nycklar. Dessa nycklar är relaterade till dimensionstabellerna. Det finns olika typer av faktatabeller med värden på atomnivå.
  • Transaktionsfaktatabellen innehåller data om specifika händelser, såsom försäljning och helgdagar.
  • Registreringsfaktatabeller innehåller information från angivna perioder, som kontoinformation i slutet av året eller varje kvartal.
  • Dimensionstabellen ger detaljerad information om attribut eller poster som finns i den centrala faktatabellen.
  • Användaren kan själv utforma en tabell efter behov.
  • Stjärnscheman kan användas för att samla ögonblicksbildtabeller.

Egenskaper hos ett snöflingeschema

  • Snöflingescheman kräver mindre diskutrymme.
  • Modellen är enkel att implementera på grund av dess separata huvud- och underdimensionstabeller.
  • Dimensionstabellerna innehåller minst två attribut för att definiera information med flera granulariteter.
  • Prestandan är lägre jämfört med stjärnschemat, på grund av det stora antalet tabeller.
  • Snöflingescheman har hög dataintegritet och låg redundans tack vare normalisering.

Stjärnschema kontra snöflingeschema: Fördelar

Fördelar med stjärnscheman

  • Stjärnschemat är det enklaste schemat bland datamartscheman.
  • Det har en enkel rapporteringslogik, som kan appliceras dynamiskt.
  • Det är utformat med inmatningskuber som appliceras via online-transaktionsprocessen för att få kuberna att fungera effektivt.
  • Stjärnschemat är designat med enkel logik och frågor som är lätta att extrahera från transaktionsprocessen.
  • Det ger förbättrad prestanda för rapporteringsapplikationer.
  • Det används för att säkerställa snabb dataåterställning.
  • Filtrerad och utvald information kan enkelt appliceras på olika situationer.

Fördelar med snöflingescheman

  • Snöflingescheman används för att förbättra frågeprestanda tack vare det minskade kravet på lagringsutrymme.
  • Det erbjuder bättre skalbarhet i förhållandet mellan komponenter och dimensionsnivåer.
  • Det är lättare att underhålla.
  • Snöflingescheman erbjuder snabb datahämtning.
  • Det är ett vanligt och enkelt datalagringsschema.
  • Det bidrar till att förbättra datakvaliteten.
  • Den strukturerade datan minskar risken för dataintegritetsproblem.

Stjärnschema kontra snöflingeschema: Begränsningar

Begränsningar hos ett stjärnschema

Stjärnschemat har ett denormaliserat och integritetstillstånd. Hela processen riskerar att kollapsa om användaren inte lyckas uppdatera data. Säkerheten är också begränsad. Dessutom är stjärnschemat inte lika flexibelt som andra analysmodeller. Det ger inte effektivt stöd för olika relationer.

Begränsningar hos ett snöflingeschema

Den största begränsningen med snöflingeschemat är det ökade underhållsarbetet, på grund av det ökande antalet små dimensionstabeller. Många komplexa frågor gör det svårt att hitta den information som krävs. Dessutom tar det lång tid att implementera en fråga på grund av det stora antalet tabeller. Modellen är också rigid och kräver högre underhållskostnader.

Stjärnschema kontra snöflingeschema: Skillnader

Både stjärn- och snöflingescheman är typer av flerdimensionella scheman, men med olika strukturer och egenskaper. Det förstnämnda liknar en stjärna och det senare en snöflinga, vilket ger dem deras namn.

I ett stjärnschema etablerar en enkel koppling en relation mellan den centrala faktatabellen och sidodimensionstabellerna. I ett snöflingeschema krävs flera kopplingar för att länka till dimensionstabeller.

Stjärnscheman används vanligen när dimensionstabellerna har ett litet antal rader, medan snöflingescheman används när en dimensionstabell är relativt stor.

Tabellen nedan illustrerar skillnaden mellan de två modellerna och hur dimensionstabeller och faktatabeller är sammankopplade i de olika scheman.

Parametrar Stjärnschema Snöflingeschema
Diskutrymme Stjärnschemat använder mer diskutrymme. Snöflingeschemat använder mindre diskutrymme.
Dataredundans Har hög dataredundans. Har låg dataredundans.
Normalisering Dimensionstabellerna är denormaliserade, vilket innebär att samma värde upprepas i tabellen. Dimensionstabellerna är helt normaliserade.
Frågeprestanda Tar kort tid att köra frågorna, vilket ger bättre prestanda. Tar längre tid att söka än i stjärnschemat, vilket ger sämre prestanda.
Frågekomplexitet Låg frågekomplexitet. Högre frågekomplexitet än stjärnschemat.
Underhåll Svårt att underhålla på grund av hög dataredundans. Lätt att underhålla och ändra på grund av låg dataredundans.
Dataintegritet Hög dataintegritet eftersom data lagras redundant och flera kopior finns i dimensionstabellerna. Låg dataintegritet eftersom den normaliserar dimensionstabellerna helt.
Hierarkier Hierarkier för dimensionstabellerna lagras i dimensionstabellen. Hierarkier är uppdelade i separata dimensionstabeller.
DB-design Har en enkel DB-design. Har en komplex DB-design.
Faktatabell Flera dimensionstabeller omger en faktatabell. Faktatabellen är omgiven av dimensionstabeller, som även är omgivna av underdimensionstabeller.
Inställning Stjärnschemat är lätt att utforma och ställa in tack vare de direkta relationerna. Snöflingeschemat är mer komplicerat att installera.
Kubbearbetning Kubbearbetning är snabbare. Kubbearbetning är långsammare på grund av de komplexa kopplingarna.
Främmande nycklar Har ett litet antal främmande nycklar. Har ett maximalt antal främmande nycklar.

Slutsats

Både stjärn- och snöflingescheman är användbara inom olika sektorer. Vilket schema som är bättre beror på de specifika kraven.

Snöflingeschemat är en utvidgning av stjärnschemat, där dimensionstabellerna normaliseras.

Stjärnschemat är enkelt, kör frågor snabbt och är enkelt att installera. Snöflingeschemat är å andra sidan enklare att underhålla, tar mindre diskutrymme och har lägre risk för dataintegritetsproblem.

Ett stjärnschema kan vara det bättre alternativet om du behöver en enkel design, få främmande nycklar och snabbare kubbearbetning. Men om du behöver mindre diskutrymme, låg dataintegritet och mindre underhåll kan snöflingeschemat vara bättre.

Du kan även utforska några av de bästa grafdatabaslösningarna.