Materi
Dimensi kepingan salju adalah dimensi yang dinormalisasi menjadi beberapa tabel. Contoh Microsoft: produk dikelompokkan ke subkategori, dan subkategori ke kategori, sehingga dimensi produk tersimpan di tiga tabel yang saling merujuk. Digambar dari tabel fakta, tabel-tabel itu bercabang keluar seperti kepingan salju. Sistem sumber sering berbentuk seperti ini, karena memang dinormalisasi untuk transaksi.
Untuk gudang data, Microsoft menyatakan dimensi hampir selalu didenormalisasi: hierarki kategori, subkategori, dan produk diratakan menjadi kolom-kolom di satu tabel. Kepingan salju dipertimbangkan bila dimensinya sangat besar sehingga biaya penyimpanan lebih berat dari kecepatan kueri, bila ada tabel fakta pada grain lebih tinggi yang butuh kunci sendiri (misalnya target per subkategori), atau bila riwayat perubahan perlu dilacak di tingkat lebih tinggi. Bila kepingan salju dipakai, Microsoft menyarankan view yang menggabungkan tabel-tabelnya supaya pengguna tetap melihat satu dimensi rata.
-- Apotek: tiga tabel sumber diratakan menjadi bentuk dim_obat
WITH rata AS (
SELECT o.kode_obat, o.nama, g.nama AS golongan, k.nama AS kelompok
FROM src_obat o
JOIN src_golongan g ON g.id = o.golongan_id
JOIN src_kelompok k ON k.id = g.kelompok_id
)
SELECT * FROM rata;Hierarki di dimensi rata disebut seimbang bila setiap anggota punya jumlah tingkat yang sama, seperti tahun, kuartal, bulan, dan tanggal. Fakta selalu terhubung ke tingkat terendah, sehingga nilainya bisa digulung naik ke tingkat mana pun cukup dengan GROUP BY kolom tingkat itu. CTE dari kelas SQL Lanjutan membantu memberi nama pada langkah perataan, dan dokumentasi SQLite menyebut CTE biasa bekerja seperti view sementara selama satu pernyataan.