Sebbene il termine schema sia ampiamente utilizzato, in genere si riferisce a tre diversi tipi di schema: uno schema di database concettuale, uno schema di database logico e uno schema di database fisico.
- Gli schemi concettuali offrono una visione d'insieme di ciò che il sistema conterrà, come sarà organizzato e quali regole aziendali sono coinvolte. I modelli concettuali vengono solitamente creati come parte del processo di raccolta dei requisiti iniziali del progetto.
- Gli schemi di database logici sono meno astratti, rispetto agli schemi concettuali. Definiscono chiaramente gli oggetti dello schema con informazioni come nomi di tabelle, nomi di campi, relazioni di entità e vincoli di integrità, ossia tutte le regole che governano il database. Tuttavia, in genere non includono alcun requisito tecnico.
- Gli schemi di database fisici forniscono le informazioni tecniche che il tipo di schema di database logico non include oltre alle informazioni contestuali come nomi di tabelle, nomi di campi, relazioni di entità e altro. In altre parole, include anche la sintassi che verrà utilizzata per creare queste strutture di dati all'interno dell'archiviazione su disco.
Schema a stella e schema a fiocco di neve a confronto
In entrambi gli schemi logici e schemi fisici, le tabelle di database avranno una chiave primaria o una chiave esterna, che avrà funzione da identificatore univoco per singole voci in una tabella. Queste chiavi vengono utilizzate nelle istruzioni SQL per unire le tabelle, creando una vista unificata delle informazioni. I diagrammi di schema sono particolarmente utili per mostrare le relazioni tra le tabelle e consentono agli analisti di capire quali sono le chiavi su cui devono unirsi. Esistono due ulteriori tipi di schemi a cui si fa comunemente riferimento anche nel contesto dei sistemi di gestione di database relazionali (RDBMS); questi sono conosciuti come schemi a stella e schemi a fiocco di neve.
Mentre gli schemi concettuali, logici e fisici contengono diversi livelli di informazioni sui database nei loro diagrammi, gli schemi a stella e a fiocco di neve rappresentano tali relazioni tra le entità in modo diverso. Più specificamente, uno schema a stella è un tipo di schema di database relazionale composto da un'unica tabella dei fatti centrale circondata da tabelle delle dimensioni. Questo schema tende a essere considerato più semplice rispetto allo schema a fiocco di neve.
Uno schema a fiocco di neve è costituito da una tabella dei fatti collegata a numerose tabelle delle dimensioni, che possono essere collegate ad altre tabelle delle dimensioni attraverso una relazione molti-a-uno. Questo schema offre il vantaggio di bassi livelli di ridondanza dei dati, ma non è altrettanto efficace quando si tratta di prestazioni di query.
Come suggerisce il nome, uno schema a stella tende ad assomigliare a una stella mentre uno schema a fiocco di neve tende ad assomigliare a un fiocco di neve.