Materi
Tabel dimensi menggambarkan hal yang dianalisis: produk, orang, tempat, dan waktu. Atributnya, umumnya teks, dipakai untuk menyaring dan mengelompokkan, bukan untuk dijumlahkan. Microsoft memberi cara menemukannya: perhatikan kata per (by dalam contoh Microsoft). Permintaan penjualan per tenaga penjual, per bulan, dan per kategori produk berarti dibutuhkan dimensi yang memiliki atribut itu. Dimensi umumnya lebar dan didenormalisasi; subkategori dan kategori produk disimpan berdampingan di satu tabel, karena biaya menyimpan data berulang di tabel yang relatif kecil kalah dari kemudahan dan kecepatan kuerinya.
Setiap tabel dimensi memiliki kunci pengganti (surrogate key): satu kolom bilangan bulat yang dibuat di gudang data, tidak berasal dari sumber, dan dirujuk tabel fakta. Kunci alami, atau kunci bisnis, adalah kode dari sistem sumber, misalnya nomor induk pegawai, dan tetap disimpan untuk mencocokkan data saat dimuat. Desain Basis Data sudah membahas keduanya di basis data operasional. Di gudang data, Microsoft menambahkan alasan khusus: kunci pengganti melindungi gudang dari perubahan di sumber, menyatukan beberapa sumber yang kodenya bisa bentrok, meringkas kunci alami berkolom banyak, dan memungkinkan satu anggota punya beberapa versi riwayat.
| apotek_key | kode_apotek (alami) | nama | kota |
|---|---|---|---|
| -1 | TIDAK-DIKENAL | Kode apotek tidak dikenali | Tidak diketahui |
| 0 | TANPA-APOTEK | Tidak tercatat di sumber | Tidak diketahui |
| 1 | AP-07 | Apotek Sehat Sentosa | Malang |
Baris -1 dan 0 di atas adalah anggota khusus. Microsoft mencontohkan nilai 0 untuk data yang tidak tersedia di sumber dan -1 untuk kunci yang gagal dicari saat fakta dimuat. Dengan anggota khusus, kolom kunci di tabel fakta tetap NOT NULL dan baris faktanya tidak hilang, tetapi kueri yang menghitung anggota sungguhan harus menyaringnya.