Lo schema a stella è un modello di dati multidimensionale utilizzato per organizzare i dati in un database, in modo che siano facili da capire e analizzare. Gli schemi a stella possono essere applicati a data warehouse, database, data mart e altri strumenti. La concezione degli schemi a stella è ottimizzata per l'interrogazione di grandi set di dati.
Introdotti da Ralph Kimball negli anni Novanta, gli schemi a stella sono efficienti nel memorizzare i dati, mantenere lo storico e aggiornare i dati riducendo la duplicazione delle definizioni ripetitive, velocizzando in tal modo l'aggregazione e il filtraggio dei dati nel data warehouse.
Lo schema a stella viene utilizzato per denormalizzare i dati aziendali in dimensioni (come tempo e prodotto) e fatti (come transazioni in importi e quantità).
Lo schema a stella ha un'unica tabella di fatti al centro, che contiene "fatti" (come importi o quantità di transazioni). La tabella dei fatti è collegata a diverse tabelle di dimensioni relative a "dimensioni" quali tempo o prodotto. Lo schema a stella consente agli utenti di "sezionare" i dati come meglio preferiscono, tipicamente unendo due o più tabelle di fatti e di dimensioni.
Gli schemi a stella denormalizzano i dati, cioè aggiungono colonne ridondanti ad alcune tabelle di dimensioni per rendere più veloci e semplici le query e le elaborazioni dei dati. Lo scopo è barattare un certo livello di ridondanza (duplicazione dei dati) nel modello dei dati con una maggiore velocità delle interrogazioni, evitando operazioni di join (congiunzione) molto costose in termini di risorse di calcolo.
In questo modello, la tabella dei fatti è normalizzata, mentre le tabelle delle dimensioni non lo sono. In altre parole, i dati della tabelle di fatti esistono solo nella tabella di fatti, mentre le tabelle di dimensioni possono contenere dati ridondanti.
3NF, o terza forma normale, è un metodo per ridurre la ridondanza dei dati attraverso la normalizzazione. È uno standard comune per i database considerati pienamente normalizzati. Tipicamente ha più tabelle di uno schema a stella a causa della normalizzazione dei dati. Per contro, le query tendono a essere più complesse a causa del maggiore numero di join fra tabelle grandi.
